Как правильно отчищать память?
В программе есть девять типов расширенных из типа TEntity:
Код:
Type TEntity Код:
For O:TObj = EachIn LObj |
Re: Как правильно отчищать память?
Грили уже, нужно занулить все поля экземпляра типа, а потом и весь экземпляр типа.
|
Re: Как правильно отчищать память?
Ясно.
Вопрос еще: Global Image1 LoadImage ("Image.gif") Type TType1 Field Img Function Create() Img = Image1 ' - создает копию объекта Image1 или просто передает его адрес в поле Img end function End Type |
Re: Как правильно отчищать память?
GCcollect() вызывай сборщик мусора
передает адрес Null нули переменные типов, листы, имаджи, потоки и т.д. |
Занулить - это Null или 0?
Как работать с GCCollect(), помощь ответ на этот вопрос не дает ("Запуск уборки мусора" - это не объяснение)? Может есть стандартный пример? |
Re: Как правильно отчищать память?
Trilliput
Код:
img:TImage = LoadImage("blabla.png") |
Re: Как правильно отчищать память?
Работает, но как то странно: при первой загрузке разных менющек, циклов и тп занятая память увеличивавется, но при следующих загрузках больше памяти не жрет. (Те загрузка меню + 6мб, потом загрузка игры +15Мб, при этом память как бы отчищается от только что загруженого меню, но показыватся что занято столко же. Выгружаем игру - память не уменьшается, далее загрузка меню - память не жрет, снова грузим меню - памяти не жрет). Все рисунки грузяться в начале как Globals, а потом просто передается адрес полю типа.
|
Re: Как правильно отчищать память?
У БМ немного извратный механизм загрузки имажей - сначала грузятся только пиксмапы, потом при обращении к кадрам имажа для них создаются сюрфейсы. Т.е. полная загрузка имажа происходит при обращении ко всем кадрам. Это весьма извратно, поскольку может вызвать притормаживания на первых кадрах.
Я юзаю при загрузке такую функцию: Код:
Function imgCacheFrames(img:TImage) Если у тебя имажи глобальные, то очищаться они будут, если ты их переменным НУЛЛ поприсваиваешь. Если ты этого не делаешь, то у тебя память и не уменьшается. |
Часовой пояс GMT +4, время: 12:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot