我的 Java 程序仅在 Linux 上运行时发生内存泄漏。
症状:
- VisualVM 显示堆大小约为 300Mb 顶部,并且没有可疑活动。
- 在 Mac OS X 上,程序使用 900Mb 内存无限期运行(通过活动监视器)
- 在 Linux 上,当操作系统内存不足时,内存占用量会迅速增加至 4.5Gb(通过活动监视器)
该程序使用JavaFX。此行为在提交后开始,该提交将 GUI 和计算分离到不同的线程中。
这不可能是 JVM 中的泄漏,不是吗?
有没有工具可以调查此类问题?
JavaFX 已报告各种内存泄漏错误。它们与硬件加速图形的使用有关。 “头”的问题是这样的:
- https://bugs.openjdk.java.net/browse/JDK-8161911
上面的评论表明这些错误可能存在于 OpenGL 实现中,但它们是由 JavaFX 正在执行的操作触发的。您对提交的观察似乎很有说服力,可能值得向 Oracle 报告这一点。
另一方面,所报告的错误与图形加速相关这一事实表明您也许可以解决这个问题your通过告诉 Java 不要使用图形加速来解决问题。
有没有工具可以调查此类问题?
据我所知没有。如果问题出在人们认为的地方,那么最好的办法就是解决它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)