Вниз
Скачать: 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.013 c
3-86291
ploxish
2003-12-01 11:23
2003.12.26
Interbase & Generator


1-86417
Lisa
2003-12-14 11:38
2003.12.26
Перенос папки из одной директории в другую


14-86512
raymond
2003-12-04 12:05
2003.12.26
Музыка и программирование


4-86586
KyRo
2003-10-30 02:18
2003.12.26
Еще один вопрос по Shell_NotifyIcon


11-86325
DrFaust
2003-04-03 16:07
2003.12.26
TreeView Нужна помощь!




   Наверх