0

私はSpring、Hibernate、Java 1.6などを使用しています。メソッド内に複数のアラリストとマップが作成された複雑なロジックを持っています。データはデータベースからリストにロードされてから、jsp ページ用にデータを準備するために操作されます。そのページから同じアクションをすばやく複数回実行すると、アクションに頻繁にヒットします。大量のデータがリストとマップを使用して実際に処理されると、アプリケーションは Java Heap OutOfMemory をスローします。

-Xms -Xmx を適用すると、ある程度は役に立ちます。データが大きくなると、このオプションはメモリの問題で失われます。リストを操作してModel for jspページに渡した後、リストをクリアする方法はありますか。

4

3 に答える 3

1

いつ、どこで襲われるかわからないため、OOM から回復することはできません。

Google の guava のような遅延コレクションを使用して、余分なコピーを作成せずにデータを操作してみてください。カーソルと反復子を使用して、メモリに完全なデータが格納されるのを回避します。

于 2013-02-13T07:00:38.277 に答える
0

メモリに必要ないくつかの大きなリソースにはSoftReferencesを使用してみてください。

キャッシュを整理して、不要なコンテンツをメモリから解放します。たとえば、ehCacheを参照してください

于 2013-02-13T06:36:14.933 に答える
0

ehcache、Memcached、oracle coherence などの分散メモリ キャッシング ソリューションを使用してみてください。

于 2013-02-13T07:03:03.393 に答える