Проясните, пожалуйста, ситуацию с памятью. К примеру есть простенький код с счетчиком 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, тот же неумолимый рост. Просто более наглядна.