我在Java中有以下类:
public class MemoryUsage
{
public static void main(String[] args)
{
Vector v = new Vector();
while (true)
{
byte b[] = new byte[1048576];
try {
Thread.sleep(200);
} catch (InterruptedException ie){}
v.add(b);
Runtime rt = Runtime.getRuntime();
System.out.println( "free memory: " + rt.freeMemory() );
}
}
public void showCurrentTime()
{
long time = System.currentTimeMillis();
System.out.println(time);
}
}
我想限制这个程序可以使用多少内存。我尝试设置初始和最大大小(来自命令行),如下所示:
C:\JMX_code\Memory_test>java -Xms2m -Xmx4068M MemoryUsage
Error occurred during initialization of VM
The size of the object heap + VM data exceeds the maximum representable size
但这不起作用。我如何弄清楚自己的最大堆大小是多少?
我的Java版本信息。如下:
Java(TM)SE运行时环境(版本1.7.0_02-b13)Java HotSpot(TM) 64位服务器VM(内置22.0-b10,混合模式)
答案 0 :(得分:1)
尝试将其更改为:
-Xms2034M -Xmx4068M MemoryUsage