簡體   English   中英

在 Java 中,如何找出最大堆大小?

[英]In Java, how do I find out what is my maximum heap size?

我在 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,混合模式)

嘗試將其更改為:

-Xms2034M -Xmx4068M MemoryUsage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM