WindowsXPでBEAJRockitJDK 5.0Update6を実行しています。マシンに4GBのプライマリメモリがある場合に割り当てることができる最大ヒープはどれくらいか知りたいです。
1948 次
2 に答える
0
私は JRockit を持っていませんが、いくつかの-Xmx
オプションの値を試す必要があります。私の JVM では、制限は 1610 MB です。
c:\tmp>java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
c:\tmp>java -Xmx1610m mem_test
1552 MB Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at mem_test.main(mem_test.java:15)
c:\tmp>java -Xmx1611m mem_test
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
このようなプログラムでテストしたので、アプリケーションが JVM で利用可能なヒープから割り当てることができるメモリの量を確認できます。
import java.util.ArrayList;
import java.io.*;
class mem_test
{
public static void main(String[] args)
{
ArrayList<byte[]> big_list = new ArrayList<byte[]>();
int max = 0;
int i = 0;
while (true)
{
++i;
big_list.add(new byte[1024 * 1024]);
max = i;
if (i % 16 == 0)
System.out.print("\r" + i + " MB ");
}
}
}
于 2010-01-21T12:33:52.707 に答える
0
このSOリンクで答えを得ました
于 2010-01-21T12:41:42.183 に答える