フレックス配列コレクションが大量のデータ (たとえば 2,00,000 個の新しい参照オブジェクト) で処理される場合、フレックス クライアント ブラウザーのメモリは 20MB 増加します。この余分な 20MB は、オブジェクトで定義された変数とは無関係です。詳細な例を以下に示します。
var list:ArrayCollection = new ArrayCollection;
for(var i:int = 0;i<200000;i++)
{
var obj:Object = new Object;
list.add(obj);
}
上記のコードを実行すると、フレックス クライアント ブラウザのメモリが 20MB 増加しました。別のシナリオとして、アクション スクリプト オブジェクトを配列コレクションに追加してみました。アクション スクリプト オブジェクトを以下に定義します。
public class Sample
{
public var id:int;
public var age:int;
public Sample()
{
}
}
200000 Sample クラスを配列コレクションに追加すると、まだ 20MB のメモリ リークがありました。
var list:ArrayCollection = new ArrayCollection;
for(var i:int = 0;i<200000;i++)
{
var obj:Sample = new Sample;
obj.id= i;
onj.age = 20;
list.add(obj);
}
サンプル オブジェクトをフレックス arrayList と配列に追加しようとしましたが、問題は解決しません。この余分なメモリがフレックスによって消費される場所について誰かが説明できますか?