【问题标题】:Java(FX) application is leaking memoryJavafx) 应用程序正在泄漏内存
【发布时间】: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


【解决方案1】:

有了 Intellij,你就有了一个很棒的工具,叫做 Memory View

抱歉,我正在更新这篇文章,因为它已经包含在较新版本的 IntelliJ 中。

所以如果你正在调试,你可以在进入调试窗口时找到它:

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多