不十分なヒープスペースに関連する例外がスローされたときに、Java Xmxメモリー制限を増加させました。しかし、私は現在、メモリーに関連する可能性がある非常に長い実行時間を経験していますが、例外はスローされていません(まだ)。JVMはヒープをスワップしますか?
私は長い実行時間を考慮しているのだろうかと思います。 JVMはヒープをディスクにスワップしますか?
私は更新のHotSpot 1.6.0使用している34
不十分なヒープスペースに関連する例外がスローされたときに、Java Xmxメモリー制限を増加させました。しかし、私は現在、メモリーに関連する可能性がある非常に長い実行時間を経験していますが、例外はスローされていません(まだ)。JVMはヒープをスワップしますか?
私は長い実行時間を考慮しているのだろうかと思います。 JVMはヒープをディスクにスワップしますか?
私は更新のHotSpot 1.6.0使用している34
JVMはディスクにスワップしません。オペレーティングシステムがそうするかもしれません。プロセス上のOS統計をチェックすることでこれを検出できます。
JVMのメモリが不足すると、ガベージコレクションが頻繁にトリガーされます。実行ごとにメモリが少なくなり、GCの速度がさらに向上します。結局のところ、GCでは多くの時間が費やされていますが、これはおそらく低速です。
0バイトが解放されてOutOfMemoryError
がスローされるまで、JVMは待機しません。 GCが解放されたバイト数に対して長すぎる場合は、実際には諦めます。
大きなヒープの一つの可能な結果は、GCの倍の増加である - JVMは、大きなスペースを分析することがあるので、それは長い時間がかかる - 特にそのする場合世界を止めるGC。
あなたの質問を少し体裁できますか?
どのくらいのサイズのヒープを使用していますか?あなたはどのくらいの期間を見ていますか?アプリケーションのオブジェクトの使用パターンとは何ですか?例えば、長命のオブジェクトをいくつか、または短命のオブジェクトをたくさん。
Xmxを2GBに設定しましたが、3GBで再試行しています。シングルスレッド実行では、2GBのヒープスペース例外が投げられました。私は3GBで15分間走ってきましたが、スローされませんでしたが、3GBが十分であれば、実行時間が数百時間になるので、わかりません。もしハイウォーターマークが15分打ちそうであれば、私のグリッド(9ノード)の限界として3GBを使う価値があるようです。私は9つのノード上で9つのオブジェクトを動作させ、そのうち1/9がうまく動作するようにします。 – H2ONaCl
スワッピングは、私が想定しているOSの動作です。 – StarPinkER