3

-Xmxコマンドのオプションを使用しjavaて、プロセスがもう少し多くのメモリ (256Mb、ただし現在は 128Mb 未満を使用していると思います) を使用できるようにしています。また、メモリを開始するためのオプションにも気付きました-Xms。デフォルト値は 2Mb です。この値を何に設定する必要があり、その理由は何ですか?


参考:Java

4

4 に答える 4

9

引数は、-XmxヒープがJVMに対して到達できる最大メモリサイズを定義します。プログラムをよく理解し、負荷がかかった状態でどのように動作するかを確認し、それに応じてこのパラメーターを設定する必要があります。プログラムのヒープメモリが最大ヒープサイズに達している場合、値が低いとOutOfMemoryExceptionパフォーマンスが低下する可能性があります。プログラムが専用サーバーで実行されている場合は、他のプログラムに影響を与えないため、このパラメーターを高く設定できます。

-Xms引数は、JVMの初期および最小ヒープメモリサイズを設定します。これは、プログラムを起動すると、JVMがこの量のメモリを即座に割り当てることを意味します。これは、プログラムが最初から大量のヒープメモリを消費する場合に役立ちます。これにより、JVMがヒープサイズを定期的に増やす必要がなくなり、そこでパフォーマンスを向上させることができます。このパラメータが役立つかどうかわからない場合は、使用しないでください。

Resinのようなサーバー側のJavaアプリケーションでは、最小ヒープサイズ-Xmsと最大-Xmxヒープサイズを同じ値に設定することをお勧めします。256または512Mbに設定できます。

于 2010-04-29T17:57:19.553 に答える
7

簡単ではありませんが、ヒープ サイズはアプリケーションにとって「適切」である必要があります。小さすぎるとメモリが不足し、大きすぎるとメモリが無駄になり、GC の一時停止が長くなるリスクがあります。問題が発生した場合 (常に問題が発生する場合)、ヒープが多いほど、デバッグする必要のあるヒープが多くなり、リークが明らかになるまでに時間がかかります。

理想的には-Xms、アプリケーションを実行する必要があると思われるサイズに設定し、-Xmxこれよりも大きな値に設定します (ただし、大きすぎない)。冗長ガベージ コレクションを常にオンにし、使用中のヒープをグラフ化して、設定した値を確認します。

ヒープをグラフ化すると、発生しているコレクションの数とタイプが表示されます。多すぎないことが重要です。ただし、ヒープが大きくなりすぎてヒープが少なくならないようにすることも重要です。理想的には、一時停止時間が非常に短い、適切な間隔の gcs の定期的なセットが求められています。

Java ( jrockitは別として) は連続したメモリを必要とし、Windows のメモリ マップは断片化さ-Xms-Xmxているため、ヒープをできるだけ早く取得してロックダウンするために支払います。

于 2012-11-28T11:19:58.750 に答える
2

Xmxはメモリプールの上限です。Xmsは初期サイズです。これですべてです。それぞれの適切なサイズは、アプリケーションの複雑さによって異なります。初期サイズを2MBより大きく設定する主な利点は、JVMがOSからより多くのメモリを要求するために費やす時間が少なくなることです。256mbの上限を設定した場合、32mb〜64mbの初期サイズはほとんどのエンタープライズアプリケーションにとって不合理ではありません。

詳細はこちら: http: //java.sun.com/j2se/1.5.0/docs/tooldocs/windows/java.html

于 2010-04-29T17:53:43.480 に答える
1

この値を何に設定する必要があり、その理由は何ですか?

もちろん、アプリケーションによって異なります。

アプリケーションが最初に最大で 64 MB を消費することがわかっている場合、たとえば最初の 1 分間で 64 MB を消費する場合、デフォルト (2 MB) を使用すると、VM はこの 64 MB に達するまでメモリを数回要求します。これらのメモリ リクエストは、VM が追加を要求する前にガベージ コレクタがスペースを解放しようと何度も実行される可能性があるため、アプリケーションの速度を少し低下させます。

start 64 mb を使用することがすでにわかっている場合は、-Xmsパラメータを使用すると、そのメモリを事前に割り当てることができます。

128MB を消費していて、使用可能なメモリが十分にある場合は、それを使用することができjava -Xms128m、長期間にわたって追加のメモリを要求することを心配する必要はありません。

しかし、繰り返しになりますが、アプリケーションが何をするか、メモリがどのように使用されるか、いつ必要になるかによって異なります。などなど

于 2010-04-29T18:29:22.447 に答える