※ ChatGPTを利用し、要約された質問です(原文:最大ヒープサイズに対して、JMVのメモリサイズがありえない程小さいです)
JVMのメモリサイズが想像以上に小さいです
このQ&Aのポイント
Javaとeclipseを使い始めてまだ2週間程度ですが、JVMのメモリサイズを調べてみました。
JVM内の空きメモリを調べるfreeMemory()メソッドを随所に入れると、確かにある箇所から激減したので、リークしてるらしきところは発見できました。
JVMの総容量を出力するtotalMemory()を入れてみると、プログラム開始直後から、この値が5177344しかありません。
最大ヒープサイズに対して、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についても参考になりました。