当前位置: 首页 > 知识库问答 >
问题:

为什么内存使用少于XMS?[副本]

蔚楷
2023-03-14

我有一个简单的java程序,它使用-xms=512MB-xmx=512MB参数运行。所以初始堆是512Mb,这意味着我的JVM必须请求我的OS在我启动程序时为它分配至少512Mb。如果打开jconsole,我会看到最大堆大小为524MB(JVM本身需要一些额外的内存),提交内存为524(保证Java VM可用的内存量)。但如果执行任务列表查找{my_pid}

然后我明白了

java.exe 7700控制台1 145 272卡

我很困惑。怎么会低于512MB呢?

共有1个答案

戚默
2023-03-14

下一行显示的是当前状态,而不是最大/最小范围:

java.exe                      7700 Console                    1   145 272 КБ

在JVM中执行一些内存密集型程序,在执行tasklist find{my_pid}时会得到不同的结果。

请注意,xms保证,如果OS没有剩余的这么多内存(加上一些额外的内存),OS将不会启动java.exe。然而,一旦java.exe被启动,OS可以基于使用情况优化存储器的分配,例如,如果java.exe变得空闲,则OS可以为其分配存储器<XMS。此外,tasklist提供的信息是为最终用户提供的,可能与内部统计数据关系不大。请查看此讨论以获得更多的见解。

 类似资料:
  • 我的问题作为标题,通过搜索得到了一些知识: > Linux具有共享内存如何测量应用程序或进程的实际内存使用情况? JVM将保留在Xms中设置的内存量,对于堆内存,-Xms JVM是什么意思? 下面是我在Ubuntu12.04(64bit)JDK 1.7.0_04上的测试运行。和顶部显示如下:

  • 我不明白需要这样的东西。根据我的理解,是一个返回函数的函数。在我看来,包装的表达式和中间件的使用更容易混淆正在发生的事情。摘自的示例代码 上面的代码可以写得更简洁和直观: 我的问题是,实现了什么需求,以及它如何改进类似于上面示例的现有解决方案。

  • 所以我想知道,为什么一个PHP网站可以请求任何资源,但是有了JS,很多都因为CORS而被阻止了。有人能给我解释一下吗?

  • JVM选项: 正如预期的那样,JVM将为JVM堆分配将近20MB的内存。 但请参阅以下 GC 详细信息: PSYoungGen总计9216K,已用4612k[0x 00000000 ff 6000000,0x 0000000010000000100000000]< br > Eden空间8192K,56%已用[0x 000000000 ff 600000,0x 0000000 FFA 812d 8

  • 我是一名高中生,目前正在为州学术会议(UIL)做准备。我有一个问题,我到处找,似乎找不到答案!为什么要打印0.0?

  • 问题内容: 我只是在一本Java书中读到这句话,说Java中的对象驻留在堆上。使用堆是因为它是快速存储数据和快速检索数据的最佳方法吗? 我只有一个关于数据结构初学者的想法。我的意思是为什么不堆叠或其他? 问题答案: 堆栈的问题是您只能删除最近添加的内容。这对于局部变量非常有效,因为它们在您进入和退出函数时会来来去去,但对于生命周期不遵循单个函数的任意数据而言,效果则不太好。内存堆使您可以随意添加和