Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Необходимо как-то ограничить память используемую программой [D4, Win95/98]


alina ©   (2003-02-04 17:24:00) 

В моей программе штук 40 массовов размерностью 200 на 1000. Процедура ApplicationProcessMessage в циклы вставлена. Оперативная память ПК - 384 Мбайт, но все равно работать за компьютером невозможно. Может ли быть, что просто неправильно настроен Windows? А может нужно ограничить использование программой процессора? Как это можно сделать? Проблема для меня действительно серьезная так, как программа считает по 2 суток(нестационарные двумерные процессы)


Anatoly Podgoretsky   (2003-02-04 18:24:00) [1]

Это не размер, явно дело в алгоритме, по крайней мере это основной ресурс повышения быстродействия.


Игорь Шевченко   (2003-02-04 18:10:00) [2]


> В моей программе штук 40 массовов размерностью 200 на 1000


Переписать программу. Однозначно.


han_malign   (2003-02-04 18:07:00) [3]

Попробуй с HeapAllocFlags поизвращаться, если под 9X/Me работаешь то лучше w2k (в 9Х - и виртуальная память, и мультизадачность кривее).
А так, что-бы другие приложения не тормозили - приоритет процесса надо понижать, или ProcessMessages почаще вставлять, но это аукнется увеличением времени рассчета.
Помогает увеличение шага отображение прогресса (пореже промежуточное данные выводить - отображение много времени отжирает).

З.Ы. 2 Кот Бегемот © (04.02.03 17:41) - а ты уверен, что это девушка - и не такие экзотические ники встречаются..., а ты сразу #$% :)))


gsu   (2003-02-04 18:02:00) [4]

>> А Вам девушка помогут потоки :)))
>> и как ?
Если вы имеете ввиду вынос расчетной части в доп. поток, то это верно, я просто по другому и не делаю (-:|~


Романов Р.В.   (2003-02-04 18:00:00) [5]

Application.ProcessMessage используйте через 100 - 1000 итераций цикла.


gsu   (2003-02-04 17:59:00) [6]

>> Mystic © (04.02.03 17:55)
~ 4


Mystic   (2003-02-04 17:55:00) [7]

Скорее всего проблема не в памяти, а в процессоре... в этом случае надо или понизить приоритет основного потока, либо содать дополнительно поток с меньшим приоритетом.

> ~ 30 метров
Откуда вы знаете размер элемента массива?


gsu   (2003-02-04 17:46:00) [8]

>> А Вам девушка помогут потоки :)))
и как ?

странно, ~ 30 метров всего, может размерность больше или используются динамические массивы и неправильно освобождаются ?


Кот Бегемот   (2003-02-04 17:41:00) [9]

Удалено модератором
Примечание: Повежливее делай предложение


Наверх

Титульная страница Поиск, карта сайта Написать письмо