1

Java Web アプリケーションで Spring + Hibernate を使用しています。春と休止状態が通常よりも多くのメモリを使用することをウェブで読みました。頻繁にメモリ不足になります。そこで、jvisualvmを使用して Tomcat のプロファイルを作成しようとしました。メモリ内で見ると、オブジェクトが追加され続けています (既存のオブジェクトを置き換えません)。

たとえば、製品オブジェクトのリスト (リストに 1000 個のオブジェクト) をロードしている場合、1000 個の製品オブジェクトがヒープ メモリに追加されます。データ グリッドを再度更新すると、ヒープ メモリに 1000 個のオブジェクトが追加され、増加し続けます (画像を参照)。追加し続ける代わりに、ヒープメモリ内の既存のオブジェクトを置き換える方法はありますか?

ヒープメモリは prmaster オブジェクトを追加し続けます

4

1 に答える 1

3

いいえ、 heapのオブジェクトを置き換えることはできません。できることは、そのオブジェクトへのすべての参照を削除し、リストから削除することです。そうすれば、Java のガベージ コレクターがオブジェクトを破棄します。

ガベージ コレクションに関する次のリンクを参照してください: http://javabook.compuware.com/content/memory/how-garbage-collection-works.aspx

于 2013-06-17T14:01:17.333 に答える