0

最大ヒープ サイズと最大 permgen スペースをテストするには、Gilliが Windows の Java プロセスあたりの最大メモリ量で提案した返信に従って? 、システムを出力するだけのmainメソッドを持つ単純なJavaクラスを作成しました

以下のパラメーターを使用してコンソールからクラスを実行すると、正常に実行されましたが、2048 で、エラー could not reserve が発生しました オブジェクト ヒープに十分なスペースを予約できませんでした。これは、システムの最大ヒープ サイズが 1536 から 2048 の間で許容されることを意味します。

 java -Xms1536m -Xmx1536m  TestJVMParam

http://publib.boulder.ibm.com/infocenter/javasdk/tools/index.jsp?topic=/com.ibm.java.doc.igaa/_1vg00014884d287-11c3fb28dae-7ff6_1001.htmlのリンクによると、

64 ビット Java を実行している場合、オペレーティング システムが Java プロセスに提供するメモリ空間は非常に大きくなります。したがって、Java ヒープとネイティブ ヒープの間のメモリ リソースの競合により、Java ヒープの最大サイズに制限が課されていないと見なすことができます。

だから私は 8 GB のメモリを持っているので、なぜ VM はオブジェクト ヒープに十分なスペースを予約できなかったのでしょうか?

2 番目に必要なのは、システムの最大 permgen サイズを見つけることです。だから私は以下のパラメータで同じプログラムを実行しました

 java -Xms1536m -Xmx1536m -XX:PermSize=128m -XX:MaxPermSize=128m TestJVMParam

しかし、再び、オブジェクトヒープに十分なスペースを予約できませんでしたと表示されます。Windows7 64ビットOSで8GB RAMを持っているので、どうすればそれが可能ですか。そして、permgen に 128m も許可しないのですか? 私はここで何かが欠けていると確信していますが、それを理解することはできませんか?

4

0 に答える 0