java - 应用程序中的内存泄漏

标签 java netbeans javafx memory-leaks profiler

我的 javaFX 应用程序似乎有内存泄漏问题,我一直在使用 net beans profiler 工具来帮助我找到泄漏源,但我有撞墙了,因为我不确定自己在做什么。

现在我看了教程,他们说要监控一个对象的 surviving generations 但我仍然不确定如何使用这些信息。我在监视我的应用程序时截取了最高 surviving generation 对象的屏幕截图。

有人可以向我解释我应该如何处理这些对象,或者它们是否真的导致了内存泄漏

enter image description here

最佳答案

意外的高内存使用率的一个常见来源是将对象添加到集合中,然后在完成后不删除它们(我看到您发布的图像显示了一个 HashMap,这可能是一个问题)。典型的解决方案是使用一个集合,一旦所有其他对它的引用都消失,该集合将不会使对象保持 Activity 状态,请参见 WeakHashMap了解更多信息。

要深入研究这些类型的问题,请进一步捕获一个 hrpof(您可以使用 VisualVM、JConsole 等),然后在 Eclipse MAT 中对其进行分析。或类似的工具。

关于java - 应用程序中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36157096/

相关文章:

java - 运行startNetworkServer时出错

java - 可以将多个 fxml 包含到同一个 fxml 中吗

css - TextField 两侧的边框不同

java - Android FragmentLayout 未加载

java - 将大数据导入二维数组

java - 如何让JList显示ArrayList?

java - 实例化 JavaFX 窗口

java - Neo4j 中有 `Neo.ClientError.Statement.InvalidType`

java - 在Java中,如何实现像文件资源管理器这样的东西?

java - 如何将文本字段(JFrame 1)的输入值传递给标签(JFrame 2)