gpt4 book ai didi

java - 一个简单的 "Hello World"在 64 位机器上需要 10G 虚拟内存,而在 32 位机器上需要 1G?

转载 作者:IT老高 更新时间:2023-10-28 13:52:07 30 4
gpt4 key购买 nike

在我们的生产机器上运行一个简单的 Java 程序,我注意到这个程序消耗了更多的 10G virt。我知道虚拟内存没有那么重要,但至少我想了解为什么需要它。

public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
try {
Thread.sleep(10000);
} catch(InterruptedException e) {
/* ignored */
}
}
}

当我运行那个小程序时,top 是这样说的:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18764 myuser 20 0 10.2g 20m 8128 S 1.7 0.1 0:00.05 java

有人知道为什么会这样吗?

uname -a 说:

Linux m4fxhpsrm1dg 2.6.32-358.18.1.el6.x86_64 #1 SMP Fri Aug 2 17:04:38 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux

在较旧的 32 位 Linux 机器上,相同的程序仅消耗大约 1G virt。旧机器有 4GB 内存,新机器有 32GB。

最佳答案

default sizes for initial heap and maximum heap被定义为机器物理内存的百分比,如今的生产服务器往往拥有一大堆

您可以通过 -Xms and -Xmx command line options 选择两者.

关于java - 一个简单的 "Hello World"在 64 位机器上需要 10G 虚拟内存,而在 32 位机器上需要 1G?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23385471/

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