gpt4 book ai didi

java - 通过 -Xmx 和 -Xms 参数指定最大堆内存是一种不好的做法吗?它可以修复系统挂起吗?

转载 作者:行者123 更新时间:2023-11-30 06:11:03 28 4
gpt4 key购买 nike

我有一个用 JavaFX 开发的销售点应用程序。一些客户指出,系统在一天中的特定时间开始挂起,此时系统使用频率更高。

我做了一些测试,将我的应用程序的最大堆内存限制在非常小的数量 (-Xmx30m),我确实注意到系统挂起,一些通常需要不到一秒的缓慢操作,打开的窗口只有白色没有内容的背景等等...所以我认为这也可能是我客户的问题。

所以我认为在我遇到这些错误的这些客户端上,默认情况下使用的最大内存可能比它应该的要低,并且通过添加参数来指定最大内存并通过 -Xmx1512m 和 -Xms1512m 启动内存也许这可以解决问题,但这样做是一种好习惯吗?我会有不良副作用吗?

最佳答案

如果您的应用程序需要 1.5gb 的内存,那么这就是解决问题的方法。但如果问题是由于程序中的“内存泄漏”引起的,则更改设置可能只会隐藏问题的根源。

您可能应该尝试分析应用程序的内存使用情况以验证:

  • 缓慢是由于内存使用和
  • 内存使用是“正常的”,即不是由于编程设计问题,通过识别内存使用情况。

例如,我有一个内存不足的 JavaFX 应用程序,我意识到大量内存被 JavaFX 属性对象使用,这些对象无法进行垃圾回收,因为 JavaFX 对象(表等)保留对这些属性的引用.我更改了设计以重用现有属性而不是创建新属性,内存问题得到解决。

关于java - 通过 -Xmx 和 -Xms 参数指定最大堆内存是一种不好的做法吗?它可以修复系统挂起吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764437/

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