gpt4 book ai didi

Java 正在分配额外的 2gb 内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:41 26 4
gpt4 key购买 nike

我有一个新的 VPS 来运行我和一些伙伴制作的一些 java 程序。我用这样一行开始这个过程:

java -Xmx512M -jar program.jar

在我们的旧 VPS 上,您可以使用“top”命令查看使用了多少虚拟内存和常驻内存。它会使用 600-700mb 的虚拟内存。现在在我们的新 VPS 上,使用相同的命令,虚拟内存似乎总是比 -Xmx 值多 ~2gb。因此,虚拟内存不是大约 600-700mb,而是 2700-3000mb。

旧的 VPS 运行 CentOS 5.7,新的运行 CentOS 6.2。两者都运行 JRE 1.7u3 64 位。

为什么会这样,我该如何解决?

编辑:顶部

PID   USER    PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
27645 pyro 20 0 3003m 270m 10m S 5.0 1.7 1:19.18 java -Xmx512M -jar cserver.jar

另一个编辑:我不是在质疑为什么虚拟内存使用的内存比 java 命令行中指定的多。我在质疑为什么它比以前使用了这么多。

最佳答案

堆并不是唯一消耗虚拟内存的东西。虚拟内存是应用程序拥有的地址空间量,而不是它正在使用的内存量(常驻是一个更好的指标)

虚拟内存包括所有线程堆栈空间、直接内存和内存映射文件。

我首先要检查的是您的应用程序使用的线程数,线程越多,虚拟内存就越多。

关于Java 正在分配额外的 2gb 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663210/

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