dynamic设置java进程的最大堆大小

dynamic设置java进程的最大堆大小,第1张

概述dynamic设置java进程的最大堆大小

我有一个Java程序是由一个batch file,像这样行:

javaw -xms64m -Xmx1024m com.acme.MyProgram

但是,在某些计算机上,程序不会启动并显示以下消息:

无法为对象堆预留足够的空间。 无法创buildJava虚拟机。

这个问题似乎是内存分配池的最大尺寸大于电脑可以处理的。 将内存分配池的最大容量从1024m减less到512m似乎可以解决问题。

如何衡量目前在linux上使用的内存带宽?

linux上的javafx应用程序巨大的内存消耗(不是windows)

如何在Python中使用psutil获得程序的最大内存使用率

从U-boot shell模式写入NVRAM

从C中的物理内存地址读取结构

有没有一种方法可以提前确定计算机上有多less内存(从batch file中),并确定是否在batch file调用中使用-Xmx1024m或-Xmx512m ? 请注意,这个batch file只需要在windows上工作。

是否需要时间来释放内存?

你怎么知道一个文件是否被caching在内存中的linux?

如何确定linux中的进程内存限制?

为什么在top命令的详细列表中列出的SWAP大于摘要?

有一个命令,我可以打电话打印出malloc数据结构?

实际上Java VM已经做了类似的事情。 如果您不指定-xms或-Xmx ,则这些值是从机器上的物理内存量推断出来的。 或者至少如此说这个网页 。

您可以将-xms设置为使您的应用程序有用的最小堆大小,并让Java为-Xmx确定合适的值。

你可以看看这个页面的一些答案: 让JVM根据需要增加内存需求,达到VM限制的大小?

如果你的程序正常工作的最大堆积为512米,我会使用该值。

这就是说,我也会检查一下,看看是否有办法做你所要求的,因为这是一个有趣的问题。

您可以从您的批处理文件执行,检查退出时的错误级别,如果失败,则在较低的内存中重新启动。 我不确定错误级别是否可行 – 如果没有,你也可以检查程序执行的时间长度,小于10秒的任何事情都是免费的。

只是一些评论 –

如果你知道它不需要超过512,你应该运行一个测试,以确保1024实际上有帮助。 较大的堆可能经常使GC暂停更长时间,并且做其他事情。

如果你非常确定你会使用一定数量的内存(比如,堆将很容易地填满你分配的512),那么你应该把min设置为这个数。 如果你的程序分配了一堆东西,但是不是情境的(总是使用大约相同数量的内存),那么将最小值和最大值都设置为512是很好的。

总结

以上是内存溢出为你收集整理的dynamic设置java进程的最大堆大小全部内容,希望文章能够帮你解决dynamic设置java进程的最大堆大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存