![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2009
Сообщений: 33
|
Доброго времени. Написан код на AS3. Код работает в контейнере и отображается в Win32 приложении Delphi, используется ExternalInteface. Часть объектов сцены создана статически, часть создается динамически. Пока приложение никто не трогает память не течет, как только происходит действие начинает течь именно виртуальная память. Прочел все со словами GС и штуки c принудительным его запуском. Написал код
public dynamic class New extends MovieClip{ public var VFon:Fon; public var VBalans:TCaption; public var VButton:TextButton; public var VButton1:TextButton; public function New():void { VFon= new Fon; VFon.x = 0; VFon.y = 0; VFon.width = 1280; VFon.height = 1024; VButton = new TextButton; VButton.x = 20; VButton.y = 20; VButton1 = new TextButton; VButton1.x = 80; VButton1.y = 80; VFon.name = '123'; this.addChild (VFon); this.addChild(VButton); this.addChild(VButton1); VButton.addEventListener (MouseEvent.CLICK, VButtonClick, false, 0, true); VButton1.addEventListener (MouseEvent.CLICK, VButtonClick1, false, 0, true); } public function VButtonClick(MEvent:MouseEvent):void { trace (this.VFon.name); removeChild(this.VFon); VFon = null; // delete VFon; //удаляем если динамическое свойство } public function VButtonClick1(MEvent:MouseEvent):void { VFon= new Fon; VFon.x = 0; VFon.y = 0; VFon.width = 1280; VFon.height = 1024; this.addChildAt (VFon,0); } Механизм try { new LocalConnection().connect('Crio'); new LocalConnection().connect('Crio'); } catch (e:*) {} System.totalMemory при работе в плэйере пишет похожий на правду результат а в контейнере непонятные цифры, может из за это GC и не запускается? |
|
|||||
|
Modus ponens
|
Принудительный вызов мусорщика не удалит из памяти ничего, если удалять нечего. Кроме того, есть System.gc() и не нужно этих извращений с LC - они в релизном плеере все равно не работают
А проверять надо флексовым профайлером, т.как все остальные способы - долго, мучительно, и однозначо все равно не определите.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 33
|
вопрос изменился....оказывается GC правильно работает и вообще работает только если запускать в самом плэйере, а в контейнере неверно определяет память процесса и не запускает GC
Добавлено через 12 минут скажу больше - IE использует Flash9c.ocx - ошибка при определении памяти числа какие то странные - от 2- до 3-ки, GC не запускается, Firefox - сам играет flash, память определяет правильно GC запускается. Проблема в Adobe ActiveX компоненте. Поменял на 10 плэйер, все тоже самое. |
|
|||||
|
|
|
|||||
|
в 10-ом плеере есть возможность запустить GC в релизной версии без шаманства с LC: http://www.flasher.ru/forum/blog.php?b=83
может так попробовать |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 33
|
Скайпа не стоит, System.gc() - не видно работы. Течет таки ocx, т.к. проблемы только у тех процессов которые загружают ocx и работают через ActiveX.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:13. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|