0

VM引数について最近知りました-XX:+HeapDumpOnOutOfMemoryErrorが、デフォルトではオフになっているため、HotSpot JVMに当然追加する必要があると言われました。私の同僚の 1 人は、これを行うにはいくつかの落とし穴があると聞いたので、そうすべきではないかもしれないとコメントしましたが、彼はそれが何であったか思い出せません。私はそのような漠然とした発言は嫌いですが、最終決定を下す前に十分な注意を払うよう努めているので、調査を行っています.

私が見つけることができるそれへの参照のほとんどは、それを使用する方法(およびダンプファイルが配置されている場所)に関するものであり、使用に関する問題については言及していません。This SO question は別の議論を参照していますが、答えはこれにも関連しているようで、問題がないことを暗示しています:なぜこのホットスポット JVM オプションはデフォルトではないのですか? -XX:+PrintConcurrentLocks

向きを変えない理由を知っている人はいます-XX:+HeapDumpOnOutOfMemoryErrorか?

4

2 に答える 2

1

主な欠点は、新しいプログラムがこのエラーを受け取るたびに大きなファイルを作成することです (その JVM で初めて発生するとき)。2 GB のヒープがある場合、毎回同じサイズのファイルが作成され、不要なヒープ ダンプでディスク領域がいっぱいになる可能性があります。デバッグ/開発目的でのみ役立つため、ほとんどのエンド ユーザーには役立ちません。

于 2012-11-16T17:02:50.690 に答える
1

この特定のフラグでは、問題はないと思います (他のフラグについては知りません)。これは診断フラグではありません。JVM が OutofMemoryError に遭遇したときに GC/Memory の状態を出力するだけです (1 回だけ発生し、JVM の停止中にも発生します)。

受け入れる必要があることの 1 つは、-XX であり、期待どおりに動作しない可能性があることです。

-XX で指定されたオプションは安定しておらず、予告なしに変更される可能性があります

于 2012-11-16T16:38:50.250 に答える