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

使用xms参数但不使用xmx[duplicate]

柳奇思
2023-03-14

我使用两次XMS作为启动参数启动了java应用程序(Java8版本),而不是使用一次XMS和一次XMX。我马上改变了它,但我在研究它会有什么影响。

它会默认设置xms吗?它是否没有最大的堆内存,对垃圾回收器有影响,运行的频率降低,甚至不运行?

共有1个答案

符国安
2023-03-14

很抱歉让你失望了,但不会有什么魔法发生。

JVM将为-xmx选择一个值,这取决于JVM的版本、计算机的内存量、计算机类型(客户端或服务器类)和操作系统。

参见例如

 类似资料:
  • 我有以下代码: 您可以看到每个操作分配5M。当我设置时,它无一例外地成功运行,而当时,它会引发异常。有人能解释一下为什么吗?我在Windows 7、64bit、Eclipse 4.3下。以下代码是相同的结果:

  • 我有申请。我通过 或调试 它起作用了。我如何将'-xmx'参数传递到我运行的应用程序(调试)中?有没有可能做到这一点而不影响文件? 这是我将它作为一个普通的Java应用程序运行的时候 在第二种情况下,当我使用-xms、-xmx作为普通Java应用程序运行应用程序时,提交的内存大小约为3.5GiB,因为我传递了参数。

  • 其中16*320MB应该小于7.5GB。但在我的例子中,内存使用量再次达到7.5GB。有可能吗?或者我的应用程序中可能有内存泄漏? 所以,基本上我想明白垃圾回收器什么时候运行?它是否在应用程序使用的内存恰好达到Xmx值时运行?或者他们根本没有关系?

  • 问题内容: 请说明JVM 中Xms和Xmx参数的使用。它们的默认值是多少? 问题答案: 该标志指定Java虚拟机(JVM)的最大内存分配池,而Xms指定初始内存分配池。 这意味着你的JVM将以一定数量的内存启动,并且将能够使用最大数量的内存。例如,启动如下所示的JVM将以256 MB的内存启动它,并将允许该进程使用最多2048 MB的内存: 也可以以不同的大小(例如千字节,兆字节等)指定内存标志。

  • 我正在运行6个java进程,我将-xms和-xmx参数设置为每个进程1 GB,因此总堆分配为6 GB。我有8 GB的物理内存,所以在启动这6个进程之后,“free”命令应该显示6 GB是已用的,剩下2 GB但事实并非如此。相反,“free”显示只使用了1 GB,而7 GB是免费的。我有点困惑,因为我对-xms(A MB)的理解是,一个MBs的内存是由OS分配给JVM,而-xmx(B MBs)意味着

  • 我有一个jar文件,我使用单元文件运行。单元文件中的run命令如下: ExecStart=/usr/bin/java-Xms200m-Xmx465m——启用预览-jar-myapp-1.0.0.jar 我的应用程序总是记录允许使用的最大内存量。它使用以下代码对此进行记录: 由于某种原因, 的值总是比 参数的值小 左右。因此,如果jar文件使用参数运行,则应用程序将仅获得的可用RAM内存。 我的问题