gpt4 book ai didi

java - 关于 JVM 堆参数 -Xmx 和 -Xms

转载 作者:行者123 更新时间:2023-12-02 05:34:46 30 4
gpt4 key购买 nike

我有以下代码:

public static void main(String[] args) {
for(int i=0;i<10;i++) {
System.out.println(i);
byte[] b = new byte[1024*1024*5];
}
}

你看到每个操作分配5M。当我设置-Xms8M -Xmx8M时,它运行成功,没有异常,而当-Xms7M -Xmx7M时,它抛出OutOfMemoryError异常。有人可以解释为什么吗?我在 Windows 7、64 位、Eclipse 4.3 下。以下代码是相同的结果:

public static void main(String[] args) {
byte[] b;
for(int i=0;i<10;i++) {
System.out.println(i);
b = new byte[1024*1024*5];
}
}

最佳答案

您错误地认为该程序只分配了 5MB 内存,您错了。仅仅因为您创建了 5MB 数组并不意味着没有额外的内存用于类加载和其他操作。

因此,要回答您的问题,您为进程分配的内存太少了。

关于java - 关于 JVM 堆参数 -Xmx 和 -Xms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25106278/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com