JavaFX无法解释的漏洞在Linux上的内存

我的Java程序专门在Linux上运行时泄漏内存。

症状:

  • VisualVM显示堆大小约300Mb的顶部,没有可疑的活动。
  • 在Mac OS X上,程序无限期地运行900Mb的内存(通过Activity Monitor)
  • 在Linux上,当操作系统内存不足(通过Activity Monitor)时,内存占用会迅速增加到4.5Gb,

该程序使用JavaFX。 这种行为在将GUI和计算分离到不同线程的提交之后开始。

这不能在JVM中泄漏,可以吗?

有没有什么工具可以调查这些问题?

已经针对JavaFX报告过各种内存泄漏错误。 它们与使用硬件加速图形相关。 “头”问题是这样的:

上面的意见表明,这些错误可能在OpenGL实现中,但是它们是由JavaFX正在做的事情触发的。 你对你的提交的看法似乎很有说服力,可能值得向Oracle报告。

另一方面,所报告的错误与图形加速相关的事实表明,您可以通过告诉Java不要使用图形加速来解决您的问题。

有没有什么工具可以调查这些问题?

没有我知道的。 如果问题出在人们认为的问题上,那么最好的办法就是解决问题。