サーバーとの通信にadobeflex4.6とblazeds4.0を使用しています。クライアントはサーバーでRMIを作成します。サーバーは、ユーザー定義のクラスオブジェクトで構成されるarrayListを返します。200000個のオブジェクトがarrayListに追加されたと仮定します。このarrayListがブレイズドに返されると、JVMで大量のメモリを消費し、そのクライアントWebブラウザのメモリ使用量も増加しました。さらに、占有されている巨大なメモリは、JVMで収集されたガベージではありません。これにより、さらに多くのリクエストが着信すると、最終的にメモリ不足エラーが発生します。以下に、arrayListをblazedに送信するためのサンプルコードを示します。SampleClassクラスには、ゲッターとセッターを含むint型の3つの変数があります。
List list = new ArrayList();
for(i=0;i<200000;i++)
{ SampleClass sampleClassObj = new SampleClass();
sampleClassObj.setId(1);
sampleClassObj.setAge(20);
sampleClassObj.setEmpId(100);
list.add(sampleClassObj);
}
return list;
ブレイズドで大量のメモリを消費したり、そのメモリをガベージコレクションしたりしないように、すぐに解決策を返信してください。