gpt4 book ai didi

java最大堆大小和操作系统最高输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:49 26 4
gpt4 key购买 nike

我正在尝试运行一个 jar 文件,但我想处理 jvm 最大堆大小。大小 我正在使用 -Xmx80m 参数来设置最大 head 大小 80MB。

我使用我的 linux 操作系统的“top”命令来监视我的应用程序的内存分配,我很惊讶 jvm 使用的内存比我用 -Xmx 参数 (java -Xmx80m -jar myapp.jar) 指定的更多。更具体地说,来 self 的最高输出

VIRT:257 米
分辨率:109m

我认为 RES 应该最大为 80mb,如果我的应用程序需要超过 80mb,jvm 会抛出异常“内存不足”(或类似的东西)

在我的应用程序中,我使用了一个外部库。除了我用参数指定的堆之外,这个库是否使用自己的内存?

在任何情况下,我如何才能限制 jvm 的内存使用,以免克服我用参数设置的内容?

更新:
使用ulimit(unix命令)来限制JVM使用的资源是不是一个好的解决方案?

我正在使用:

Java 版本“1.7.0_02”
Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
Java HotSpot(TM) 服务器虚拟机(构建 22.0-b10,混合模式)

在软呢帽 8 电脑上

最佳答案

您不应期望 -Xmx 会对 JVM 使用的总内存施加硬性限制。

-Xmx 限制了 Java 堆的大小。 Java 堆之外的任何内存不受此限制。这包括代码、类元数据、常量池等。

您可以调整的另一件事是永久空间的大小 (-XX:MaxPermSize),因为它不包含在 -Xmx 中。

关于java最大堆大小和操作系统最高输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805162/

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