【发布时间】:2019-05-08 11:23:45
【问题描述】:
我的 JavaFX (12) 应用程序似乎在 Windows 上泄漏内存:一晚后,该应用程序消耗了我的大部分 RAM。然而,这并没有出现在任务管理器中——除了所有应用程序(包括我的应用程序)使用最少的内存(只有几十兆字节)——并且内存使用率仍然是 99%。关闭应用后,内存使用量立即恢复正常。
我真的没有预感可能会导致这种情况,除了它可能是第三方库。
关于我如何继续找出原因的任何提示? (嗯,不包括我尝试一一禁用功能)
【问题讨论】:
-
见here。
-
你在使用 Intellij 吗?
-
为什么不显示在任务管理器中?什么指标显示“99%”?如果不使用 IntelliJ,那么我建议将 VisualVM 附加到您的 Java 应用程序。您可以从其控制台触发 GC,并创建堆转储。然后可以分析堆转储以找出哪些对象占用了大部分空间。在 JavaFX 应用程序中,您可能正在创建侦听器或从短期对象到长期对象(如模型)的绑定,从而导致事情持续存在。
-
我不知道为什么任务管理器中没有显示高内存使用率,我有点假设它是本机内存泄漏或类似的,因此不容易通过 VisualVM 或那种……? 99% 我只是指任务管理器(“内存”单元)中所有可用 RAM(6 GB)的总内存消耗。这基本上就是我的应用程序对我的系统所做的:superuser.com/questions/533135/…
-
是的,我正在使用 Intellij。从来没有听说过内存视图,看起来像是一个插件......? (或功能或终极版?)
标签: java javafx memory-leaks