1

私は時々大量のメモリを必要とする Java アプリケーションを持っています。通常は 100 ~ 200 MB を消費しますが、1 ~ 2 分間で最大 2 GB を消費することもあります。

このシナリオをサポートする必要があるため、xmX を 2048 に設定します。

問題は、アプリケーションがより多くのメモリを必要としない限り、GC がこのメモリを解放しないことです。サーバーが遅くて重くなり、このアプリケーションでメモリを解放する方法がありません。

その部分の後に System.gc() を呼び出そうとしましたが、成功しませんでした。

ここで役立つ VM パラメーターは他にもありますか? GC を強制的に実行する方法はありますか?

ありがとう!

4

1 に答える 1

1

実際、メモリをオペレーティング システムに戻すものもあります。SerialGC と G1GC です。スループット コレクターまたはロー ポーズ コレクターを使用する場合、JVM は OS にメモリを解放しません。

詳細については、この記事を参照してください。

それが役立つことを願っています!

于 2013-05-26T17:31:39.863 に答える