1

Java VM には、ヒープのサイズを設定するための「-XMx」と「-XMs」があることを知っています。また、ヒープのサイズをインテリジェントに調整できる「エルゴノミクス」と呼ばれる機能もあります。しかし、厳密に固定されたサイズのヒープが必要な問題があります。

コマンドライン引数は次のとおりです。

"-Xms2m -Xmx2m -XX:+PrintGCDetails"

ただし、GC ログを観察すると、ヒープのサイズが 2048K に固定されていないようです。たとえば、2368K、2432K、2176K などを参照してください。

[GC [PSYoungGen: 480K->72K(704K)] 1740K->1332K(2368K), 0.0032190 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
[GC [PSYoungGen: 560K->64K(768K)] 2094K->1598K(2432K), 0.0033090 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
[GC [PSYoungGen: 544K->32K(768K)] 1675K->1179K(2176K), 0.0009960 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

Java ヒープの「厳密な サイジング」(それ以上でもそれ以下でもない)を行う方法はありますか?

4

5 に答える 5

4

JVMは意図したとおりにヒープを管理すると思いますが、あなたの例の問題は、最大ヒープサイズが小さすぎるため事実上無視されることです。

Sun の Windows JVM バージョン 1.6.0_06 では、最小の「最大ヒープ サイズ」は約 6MB (つまり -Xmx6m) だと思います。これよりも低い設定を試みると、実際にはヒープが大きくなる可能性があります。(最小値は 16m だと思っていましたが、少し実験したところ、6m という低い値でも機能するようです。)

ただし、-Xms8m と -Xmx8m を設定すると、ヒープがそのサイズのままであることがわかると思います。

于 2009-03-11T20:39:40.463 に答える
0

私が最初にそれを読んだとき、私はそれが2 GBと言っていると思いました;)

Java は少なくとも 10 から 30 MB の非ヒープ領域を使用することを忘れないでください。

于 2009-05-19T19:21:41.913 に答える
0

-Xmx および -Xms とともに、初期ヒープ サイズを決定する他のオプションがあります。詳細については、jvmチューニング ガイドを確認してください。

于 2009-03-11T02:59:47.923 に答える
-1

私の知る限り、これは標準の VM では不可能です。残念ながら、私は現在手元にリファレンスを持っていません。

于 2009-03-10T23:42:49.613 に答える