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

Java JVM最大可保留堆大小

朱鹤轩
2023-03-14

有很多关于堆大小的帖子和站点,但是没有一个提到在调用JVM时如何找出我可以保留的最大可能堆大小。

任务是用最大可用堆大小xmx=max动态启动我的jvm(这里不需要讨论这个任务的对象!)。

我们可以考虑读取当前可用或空闲的内存,并将该大小用于xms和XMX。但这不起作用。

[09.07.2015 08:39:39] Total physical memory MB:        24002
[09.07.2015 08:39:39] Available physical memory MB:    16115
[09.07.2015 08:39:39] Total virtual memory MB:         2047
[09.07.2015 08:39:39] Available virtual memory MB:     1810

调用Java程序时:

Java-XMS1536M-XMX1536M myApp

导致:

  1. 选择您选中的应用程序大约需要的堆。并在不可能进行该堆的情况下让用户在错误中死亡
  2. 尝试一个错误:降低堆,然后重新运行应用程序,直到找到有效的最大堆
  3. 使用此秘密方法确定保证的最大堆大小,并顺利运行它(如果是,请在您的信任圈中添加:))

我绝对好奇你的答案!

共有1个答案

邵繁
2023-03-14

如何预先检查调用jvm可能的堆大小,而不需要反复试验?

没有办法。

当然,没有一种方法可以根据你/我手头的信息给出可靠的答案。

 类似资料:
  • 我是Java的初学者,刚开始使用Intellij作为我的IDE。 当我使用它时,有时会延迟。 我更改了我的 xms 和 xmx 以获得更大的堆大小(xms = 1024,xmx = 2048),但它抛出了一个错误。 所以,我把它回滚了。 错误消息是这样的:“初始堆大小设置为大于最大堆大小的值”。 有什么问题? 如果可能,如何增加最大堆大小? 我用的是笔记本电脑,它有8GB内存。x64Intelli

  • 我在[17,98,89,42,67,54,89,25,38]中有一个数字列表,从左到右插入到一个空堆中。生成的堆是什么?

  • 我刚刚在VServer和JRE Build1.7.0_67-B01上安装了Ubuntu 64bit。如果我想运行一个java jar文件,它说 无效的最大堆大小:-XMX错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出。 我试了1M,256M,1024M,2G和4G的-XMX,都不起作用。是不是有我不知道的隐藏设定? 下面是我使用的命令:

  • 问题内容: 当然,在32位系统中可以设置的理论最大堆值是字节,但是通常(请参阅:了解最大JVM堆大小 -32 位vs64位),一个人不能使用全部4GB。 对于在64位计算机上的64位OS中运行的64位JVM,除了理论上的字节数限制或16艾字节之外,是否还有其他限制? 我知道由于种种原因(主要是垃圾回收),过大的堆可能不是 明智的选择 ,但是鉴于阅读了有关具有terrabytes RAM的服务器的信

  • 问题内容: 我有两台linux机器(都是VM),一台有12GB内存,另一台有8GB内存。 我试图在两台机器上启动相同的Java程序,并且最大可能的最大堆大小(使用-Xmx标志)。以下是我得到的结果。 12GB机器:9460MB 8GB机器:4790MB 如果我指定的最大堆大小超出了限制,我将得到以下错误。 我检查了两个系统中的可用内存(使用命令),然后得到关注。 12GB机器:大约3GB可用空间。

  • 我正在使用IntelliJ 2020.1 Ultimate,并且有一个JBoss 7.0.2服务器,我想从IntelliJ运行。 我将其添加为配置: 但是当我尝试启动服务器时,我收到以下错误: IDEA.app/Contents/plugins/Kotlin/lib/jps/kotlin-jps-plugin.jar:/Applications/IntelliJ IDEA.app/Contents