質問: 最大ヒープサイズに対して、jmvのメモリサイズがありえない程小さいです javaとeclipseを使い始めてまだ2週間程度ですが、よろしくお願いします。 ある簡単なテストプログラムで exception in thread "main" java.lang.outofmemoryerror: java heap space が出ましたので、java.lang.runtime のメソッドを使って、jvmのメモリサイズを調べてみました。 jvm内の空きメモリを調べる freememory() メソッドを随所に入れると、確かにある箇所から激減したので、リークしてるらしきところは発見できました。ただ、jvmメモリの総容量を出力する totalmemory() を入れてみると、プログラム開始直後から、この値が5177344しかありません。api仕様によればbyte単位だそうなので、初めからjvmには4.9mb程度しか割り当てられていないということなのでしょうか。以下に示すように、eclipseで設定している最大ヒープサイズは、512mbにしています。(これ以上大きくとると、eclipseの起動エラーになりました。原因はわかりません。) 実行環境はwindowsxp(メモリ1gb)で、windowsのタスクマネージャのパフォーマンスタブに表示される利用可能な物理メモリは、350mb~400mbくらいです。この環境でこれだけのjvmサイズしか取られない原因は、何が考えられるでしょうか?あるいは、どこかの設定が間違っていますでしょうか? eclipse.iniの内容は、以下の通りです。 -startup plugins/org.eclipse.equinox.launcher_1.0.201.r35x_v20090715.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519 -product org.eclipse.epp.package.jee.product --launcher.xxmaxpermsize 256m -showsplash org.eclipse.platform --launcher.xxmaxpermsize 256m -vmargs -dosgi.requiredjavaversion=1.5 -xms40m -xmx512m
回答: そのテストプログラムを動かすときに使うjvmはeclipseを動かしているjvmとは別のプロセスなので、eclipse.iniのヒープサイズは関係ありません。 テストプログラムのrun configurationsの画面で、argumentsタブのvm argumentsのフィールドに-xmxなどのオプションを指定してください。