Вниз
Скачать: CL | DM;

Как не засорять память?   Найти похожие ветки 

 
olookin ©   (2003-12-15 14:09) [0]

Проблема состоит в следующем - при постоянной работе программы в памяти происходит накопление данных. Это я заметил давно и потому постарался корректно избавляться от динамических массивов, компонентов и экземпляров классов, которые периодически создаются или уничтожаются. Как выяснилось - или не до конца корректно, или не все элементы очищаю.

Что же я должен очищать? Мне кажется, следующие штуки:
- динамические массивы (после вызова SetLength(mas,N) использую mas:=nil или Finalize(mas))
- динамически создаваемые компоненты (после вызова Create использую Destroy или Free (где как))
- классы, которые содержат динамические массивы (в destructor-е класса все массивы приравниваю nil)
- записи, содержащие динамические массивы - то же самое
- если где то использую Parent, то стараюсь не забывать убивать этот Parent перед убиением самого компонента
- динамически создаваемые массивы классов (как правило содержащие еще и окно). Здесь все те же правила. За исключением того, что использую еще Move при удалении промежуточного элемента в массиве классов. Перед этим разумеется уничтожаю само окно.
- наконец, массивы, используемые при вызове библиотечных функций (передающиеся как переменная в библиотеку). Не знаю наверняка, удаляются ли они из памяти, если к ним применять nil.

Прав ли я в своих рассуждениях? Может что то еще нужно контролировать? (а то за несколько часов работы программа начинает кушать почти 40М памяти - это при начальных 6-7М)...

Заранее спасибо за помощь.


 
Иван Шихалев ©   (2003-12-15 14:13) [1]

Возможно, растет не занятая память в куче, а сама куча. Можно поэкспериментировать с HeapSize() и HeapCompact() (используя GetProcessHeap())



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-86342
Rip
2003-12-12 19:41
2003.12.26
Смена глифа на кнопках


1-86422
Japan
2003-12-12 06:44
2003.12.26
Снимок экрана вместе с курсором


14-86492
Digitman
2003-12-04 12:48
2003.12.26
Песня о благородном джигите и неблагодарных блюстителях


14-86499
barbi
2003-12-03 13:49
2003.12.26
Что вы думаете о Windows Longhorn?


14-86548
Думкин
2003-12-02 06:04
2003.12.26
С днем рождения! 2 декабря.




   Наверх