1

私は、HashMap/Hashtable/ArrayList に何千ものオブジェクトのデータをロードする必要があるプロジェクトに取り組んでいます。小さなアプリケーションでは問題ありませんが、大きなアプリケーションではメモリ不足になります。

この状況を処理する方法を提案してください。

4

5 に答える 5

3

なぜメモリ内にある必要があるのですか?ランダムアクセスファイルを使用すると思います。

于 2012-11-06T13:38:00.540 に答える
1

すべてのデータを一度にメモリに読み込んだり、実行前に使用可能なメモリを拡張したりしないでください。

プログラムでヒープサイズを増やすことはできません。

于 2012-11-06T13:40:24.517 に答える
1

メモリを増やすか、アプリケーションが多くのオブジェクトを作成しているポイントがあるかどうか(おそらくループで)コードを確認する必要があります。そこにある場合は、そのオブジェクトを無効にします (アプリケーション フローに影響しないことを確認してください)。別のオプションとして、より軽量なオブジェクトを使用してみてください (たとえば、toString() メソッドを適切にオーバーライドできれば、Bean をより軽量な文字列オブジェクトにすることができます。これにより、アプリケーションのパフォーマンスも向上します)。

于 2012-11-06T13:52:27.980 に答える
1

ここであなたの要件について疑問に思っています。同時に何千ものオブジェクトをロードすることが重要なのはなぜですか? 詳細を教えていただけますか?おそらく、メモリに多くのオブジェクトをロードする必要がないように、実装を作り直すことができます。

于 2012-11-06T13:38:40.333 に答える
0

たとえば、 ehcacheなどのキャッシュシステムを使用できます。これにより、使用する「メモリ」をある程度制御できます。他にもキャッシュの実装があります。ehcacheはニーズに合わない場合があります。

于 2012-11-06T14:19:03.460 に答える