Можно ли вычистить XML из памяти?
Собственно, несложный тест показывает, что присвоение null ничего не дает:
Код AS3:
Код:
Main::checkMemory before init testXML: 3375104 |
Цитата:
http://help.adobe.com/en_US/as3/mobi...7189-7ffc.html |
Это, конечно, удивительно, но замена присвоения нулла на System.disposeXML(testXML) не дала ничего. :)
Добавлено через 43 секунды Код:
Main::checkMemory before init testXML: 3371008 Не, не удивительно. Это же принудительный вызов GC для режима выполнения, а в режиме отладки GC и так вызывается. |
Попробуйте проверять количество памяти через несколько "фреймов". Кто его знает, как устроен сборщик мусора, может он делает это поэтапно...
Вот тут, нужно покликать по черному квадрату, чтобы запустить gc. Если закомментировать disposeXML, и присвоение null, памяти больше занимает. Код AS3:
|
Опытным путем установлено, что System.disposeXML() работает, хотя и несколько парадоксально. Он действительно требует времени на свою работу и чистит не до конца.
Код AS3:
Код:
Main::checkMemory before init testXML: 3336 |
Полностью. У вас там еще таймер в памяти добавился и его событие.
|
Вот как бы нет.
Код AS3:
Код:
Main::checkMemory before init timer: 3336 Кстати, если процедуру генерации слегка изменить: Код AS3:
Код:
Main::checkMemory before init timer: 3336 |
Один из клиентов ругался на рост пожираемой памяти. Выяснили, что хмл не убивается, а они у нас от 16 метров и больше. Пришлось переходить на 11 плеер. disposeXML разрушает хмл и этот "мусор" дальше ждет GC. Сейчас использую disposeXML и http://silin.su/#AS3/utils/gc в проекте (работает), жду пока откажемся от хмл.
|
Да, адобовцы свинью подложили еще ту.
Работать с xml реально удобно, но то, что он столько памяти на себя берет - это какая-то жесть. |
Адобовцы не виноваты :о) Говорил с прогерами других направлений (сишники разные), говорят, что хмл и им мозги повыел.
|
Часовой пояс GMT +4, время: 15:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.