Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   actionscript=memleak? (http://www.flasher.ru/forum/showthread.php?t=130651)

garkin 30.09.2009 21:26

actionscript=memleak?
 
Проясните, пожалуйста, ситуацию с памятью. К примеру есть простенький код с счетчиком mr.doob Stats.:
Код AS3:

package{
        import flash.display.Sprite;
        import flash.events.Event;
        import net.hires.debug.Stats;
        public class Main extends Sprite
        {
                public function Main():void{
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
                private function init(e:Event = null):void{
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        var stts:Stats = new Stats();
                        addChild(stts);
                }
        }
}

MEM - постоянно увеличивается, но время от времени сбрасывается вниз, видимо запуск GC, но не до начального значения, нижний порог все время растет. Соответственно, со временем, несмотря на сбросы MEM, растет и значение MAX(максимально достигнутое к этому моменту времени значение памяти).
На сайте счетчика указано, что:
Цитата:

MEM Memory your code is using, if it increases per frame is VERY wrong.
То есть, это - ненормальная ситуация, хотя код - абсолютно минималистичен? И у меня в коде где-то косяк Оо?
Значит ли это, что GC способен чистить за собой все до конца, и есть флэшки, чья жизнедеятельность не связана с постепенной утечкой памяти?

Ситуация со stats полностью аналогична девственному коду с таймером, содержащим только трейс system.totalmemory, тот же неумолимый рост. Просто более наглядна.

wvxvw 30.09.2009 22:09

Ну да, вы взяли какой-то левый класс, который непонятно чего показывает и пришли к ошеломляющему выводу... а например существование профайлера и то, что наверняка такие или похожие тесты проводились кучу раз, и что версий плеера есть десятки вы просто не заметили...

MoHaX 30.09.2009 22:15

GC удаляет объекты на которые нету ссылок, подписок и которые не находятся в дисплей листе.
Срабатывает он, как бог на душу положит..
Если после чисток память явно растет, значит что-то залипло.

garkin 30.09.2009 23:40

Цитата:

Сообщение от wvxvw (Сообщение 854813)
Ну да, вы взяли какой-то левый класс, который непонятно чего показывает и пришли к ошеломляющему выводу... а например существование профайлера и то, что наверняка такие или похожие тесты проводились кучу раз, и что версий плеера есть десятки вы просто не заметили...

Нубы именно таковы. Они сначала делают какую-нибудь хрень, а потом в приступе паники начинают упрашивать папок спасти их от очередного приступа когнитивного диссонанса.


Часовой пояс GMT +4, время: 05:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.