私は5つの異なるタスクを実行するJavaプログラムを持っています。 -Xmx512mメモリパラメータでプログラムを実行すると、タスク1〜4は正常に動作しますが、タスク5はメモリ不足になります。 -Xmx1024mでプログラムを実行すると、5つのタスクはすべて正常に動作しますが、以前は512mのヒープで正常に動作していたタスク1〜4はほとんどすべて1024mのヒープを使い果たします。 -Xms128m -Xmx1024mを使用しても同じことが起こります。JVMがメモリフットプリントをできるだけ低く保つように指示する方法は?
JVMがメモリ使用率を低く抑えるように(たとえばタスク1-4では512m)、実際に必要なときだけ(たとえばタスク5の場合)より多くのメモリを使用するように指示するメモリパラメータは何ですか?
ガベージコレクタをデフォルト設定より頻繁にアクティブにする方法が必要なのでしょうか?
どのタスクでどの程度の量のメモリを使用するかを区別していますか? – Poindexter
1から4までのタスクの使用量はどのくらい重要ですか?とにかく、あなたは既にプログラム全体に対して1ギガバイトを割り振っています。 –
@Poindexterコマンドラインパラメータを渡して、実行するタスクを指定します。それから私は 'prstat'を使ってプログラムのメモリ利用率を見ます。 – Raihan