|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2009
Сообщений: 42
|
Статья: "ActionScript 3. Работа с памятью"
http://www.dtf.ru/articles/read.php?id=51967
доброго времени суток поясните работу Memory Controller Последний раз редактировалось bugizavr; 16.06.2009 в 22:51. |
|
|||||
поянить работу с пояснениями?....её автор на вас бы обиделся, вы его только что опустили как автора. Задавайте более конкретные вопросы.
Добавлено через 12 минут В AS3 нет прямых методов удаление объектов из памяти. Для этого флэш плеер периодически вызывает GC, по русски - сборщик мусора и этот сборщик удаляет из памяти экземпляры классов на которые вы удалили все ссылки, листенеры и который не находится в контейнере видимых объектов, т.е. висит в памяти как сопля на стене и вы уже его никак не сможете использовать. Удаляются только ты объекты которые вы сам отрезали он мира и которые в данный момент не выполняют какой-то код, например как листенер ENTERFRAME. Добавлено через 16 минут Я например пишу в классах которые буду удалять функцию prepareForDie в которой удаляю все листенеры, чищу переменные, короче готовлю объект к переходу в мир иной. И для удаления сперва запускаю её, а потом стираю ссылку на экземпляр в его родителе. |
|
|||||
Регистрация: Jun 2009
Сообщений: 42
|
прошу прощения
хотел написать: "поясните работу Memory Controller" смотрел код создание огромного числа объектов, потом их удаление.... как танцы с бубном выглядит для меня Последний раз редактировалось bugizavr; 16.06.2009 в 22:56. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Так они и есть танцы с бубном
Псевдонаучный код, на самом деле просто нужно перелопатить довольно большое количество бесполезных разношерстных данных, чтобы форсировать GC. А в целом подобные «менеджеры», на мой взгляд, бессмысленны. Код просто должен не только гадить, но и подчищать за собой. А принудительные вызовы GC только лишь снизят производительность. |
|
|||||
Если вы про описание класса, то советую вам начать изучение as3 с азов, а не разбора классов utils.
package utils { import flash.system.System; import flash.utils.ByteArray; import flash.geom.Point; import flash.utils.setInterval; import flash.net.LocalConnection; import flash.utils.setTimeout; public class MemoryController { private var mInterval:int; //Интервал обновления, в милисекундах private var mWarningMemoryLimit:int; // Размер порога памяти, при котором начинается форсированное очищение private var mCriticalMemoryLimit:int; // Размер порога памяти, который является критическим private var mAbortFunction:Function; // Функция, вызываемая при достижени критического порога private var mWarningFunction:Function; // Функция, вызываемая при достежении опасного порога private var mForcedIterationsNum:int; // Количество принудительных итераций GC, при достижении порога private var mForcedCleanInterval:int; // мин. интервал в милисекундах между принудительными очистками private var mIsAbleToForce:Boolean; public function MemoryController(refreshInterval:int = 1000, warningMemoryLimit:int = 1024*1024*60, criticalMemoryLimit:int = 1024*1024*100, forcedCleanInterval:int = 60000, forcedIterationsNum:int = 1, abortFunction:Function = null, warningFunction:Function = null):void { mInterval = refreshInterval; mWarningMemoryLimit = warningMemoryLimit; mCriticalMemoryLimit = criticalMemoryLimit; mAbortFunction = abortFunction; mWarningFunction = warningFunction; mForcedIterationsNum = forcedIterationsNum; mForcedCleanInterval = forcedCleanInterval; mIsAbleToForce = true; setInterval(checkMemoryUsage, mInterval); } |
|
|||||
Регистрация: Jun 2009
Сообщений: 42
|
willis83 спасиб за совет)
исходников уже за 150 kb всерьёз беспокоюсь за производительность флешки вот создал тему, вдруг кто-нибудь что-то умное скажет |
|
|||||
думаю лучше разбирайтесь с исходниками, проследите что вы всё удаляете, что нет ничего лишнего... если код "грязный", то это класс вам не поможет точно.
|
|
|||||
Регистрация: Jun 2009
Сообщений: 42
|
willis83 - это понятно))
код рефакторю постоянно, почти везде вик референс использую слежу за ссылками ну да ладно... |
|
|||||
http://compile4fun.wordpress.com/
можно тоже почитать |
|
|||||
Почитал вспомнил про эти статьи, вот народ развлекается! =)
Следуйте рекомендациям адобе. Используйте профайлер для контроля и поиска утечек. И вам не понадобятся всякие подпольные рогатки
__________________
Сам себе репортер |
Часовой пояс GMT +4, время: 14:43. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|