无法使用BulkLoader AS3释放内存

时间:2014-09-22 08:20:30

标签: actionscript-3 bulkloader

我目前在My Project中使用了arthur-debert的BulkLoader,因为我需要加载一个SWF列表并在屏幕上显示它们。 但是,一旦我尝试处理BulkLoader实例并重新加载另一个列表,就会出现问题:缓存了大量内存。

为了研究处理这些资源的正确方法,我做了一些研究。 我试过了loader.removeAll(),loader.clear(),loader.getContent(“XXX”,true)和Bulkloader.removeAllLoader() 但他们都无法提供帮助。

这是我的测试代码:

public static var file:XML;  *// this will store s list of path of different SWF*
private var loader:BulkLoader = new BulkLoader();
private var count:int = 0;
private var NumberOfTest:int = 20;
private function Test3():void
{
    for (var i:int = 0; i < file.item.length(); i++)
    {
        loader.add("ui/" + String(file.item[i].@url));
    }
    loader.addEventListener(BulkProgressEvent.COMPLETE, OnComplete, false, 0, true);
    loader.start();
}

private function OnComplete(e:BulkProgressEvent):void
{
    loader.removeEventListener(BulkProgressEvent.COMPLETE, OnComplete, false);
    loader.clear();
    loader = new BulkLoader();
    System.gc();

    if (count < NumberOfTest)
    {
        trace("Finish Count : " + count);
        count++;
        Test3();
    }
    else
    {
        trace("Finish All Test");
    }
}

在上述测试之后,我认为内存使用量应该返回到测试前的水平。 但结果与我的期望不同。 这是我的结果:

Before the test:
    Current Total Memory: 101,471 KB
    Used Memory: 98,524
    ActionScript Objects: 25,425
    Bitmap DisplayObjects: 32,988
    Bitmap Filter Buffer: 58
    CacheAsBitmap Buffers: 39
    Main Screen Buffer: 2,344
    Other Bitmap Memory: 90
    ByteArrays: 0
    SWF Files: 21,028
    Network Buffers: 128
    Uncategorized: 16,424

After the test:
    Current Total Memory: 378,559 KB
    Used Memory: 344,978
    ActionScript Objects: 121,171
    Bitmap DisplayObjects: 32,988
    BitmapFilter Buffers: 58
    CacheAsBitmap Buffers: 39
    Main Screen Buffer: 2,344
    Other Bitmap Memory: 119
    ByteArrays: 0
    SWF Files: 102,263
    Network Buffers: 128
    Uncategorized: 85,868

无论loader.removeAll()loader.clear()loader.getContent("XXX", true)Bulkloader.removeAllLoader(),这些过冲都不能成为GC。 有人可以体验如何处理这个问题吗?

0 个答案:

没有答案