重複の可能性:
xmx と top でメモリ使用量に違いがあるのはなぜですか?
を使用してJavaプログラムを実行します
java -Xms32m -Xmx64m xxxclassname
しかし、トップコマンドから、200MB近くのメモリが急増していることがわかります。Xmx オプションで指定されているように 64MB 未満ではないのはなぜですか?
重複の可能性:
xmx と top でメモリ使用量に違いがあるのはなぜですか?
を使用してJavaプログラムを実行します
java -Xms32m -Xmx64m xxxclassname
しかし、トップコマンドから、200MB近くのメモリが急増していることがわかります。Xmx オプションで指定されているように 64MB 未満ではないのはなぜですか?
The
-Xmx64m
フラグはヒープサイズのみを制御します。Javaが正しく機能するには、これよりもはるかに多くのメモリが必要です。
ガベージコレクションされたヒープの最大サイズを指定しています。Javaのメモリ消費には、ネイティブコード(JVMだけでなく、JNIがロードされたネイティブライブラリ)やPermGenスペースなど、他の側面もあります。(PermGenスペースはある程度調整できますが、あまり制限したくない場合は、プログラムがクラッシュします。)