结论如下:
在只有几个纯Loader加载图片的flash中,system.totalMemory属性与实际这些图片的总大小相当,但是实际flash player占用的内存占用至少是10倍于此。
也就是说如果你加载了100M的图片,那么至少该flash player的内存占用为1G,吐血!
附图如下:
测试代码如下:
var index = 0;
for (var i:int=29; i<69; i++)
{
var loader:Loader = new Loader();
loader.load(new URLRequest("P10007"+i+".JPG"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, oncom);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onerror);
addChild(loader);
}
txt.appendText(" 内存:" + flash.system.System.totalMemory/1024/1024 + "n");
addChild(txt);
function oncom(evt:Event):void
{
index++;
//flash.system.System.gc();
txt.appendText("LOADER:" + index + " 内存:" + flash.system.System.totalMemory/1024/1024 + "n");
}
function onerror(evt:IOErrorEvent):void
{
index++;
//flash.system.System.gc();
txt.appendText("LOADER:" + index + " 内存:" + flash.system.System.totalMemory/1024/1024 + "n");
}