【问题标题】:Eclipse Memory Analyzer (MAT): Shows no currently running processesEclipse Memory Analyzer (MAT):显示当前没有正在运行的进程
【发布时间】:2018-07-02 04:09:51
【问题描述】:

我正在尝试分析我的一个 Java 程序(使用 Swing)中的内存泄漏,因此我下载了 Eclipse MAT。

到目前为止我做了什么:

  1. 通过单击“运行”按钮从 Eclipse 中运行程序。
  2. 切换到内存分析视角
  3. 在程序运行时选择了“从本地运行的 VM 获取堆转储”。

它显示的是没有进程在运行。基本上是这样的:

图片来自这里:MAT : Eclipse is not showing any running process

根据 SO 上的大多数答案,您需要通过将 HPROF jmap 转储提供程序的参数设置为 -jdkhome 来配置它:[jdk 安装的根文件]。

我已经做到了。但是我仍然找不到任何正在运行的进程。如果重要,我将 JRE 与 JDK 一起安装,而不是单独安装。

【问题讨论】:

    标签: java eclipse swing heap-dump eclipse-memory-analyzer


    【解决方案1】:

    如果它是您所追求的堆转储,那么您可以使用 %JAVA_HOME%/bin/jvisualvm.exe(JDK 附带)对您的进程进行堆转储。然后,您可以使用 MAT、jvisualvm 或任何其他工具对其进行分析。

    【讨论】:

    • 我实际上想知道为什么 MAT 无法检测到任何正在运行的 Java 进程。但是使用此答案中的工具会导致我回答我的问题,因为当我启动它时出现“无法检测到本地应用程序”警告。所以我对此表示感谢。我会发布我的答案。
    【解决方案2】:

    好的,显然这是与 Windows 中的文件夹权限有关的更深层次、更潜在的问题。

    根据this,可能无法检测到本地应用程序有两个原因:

    解决方法: 这可能发生在 Windows 系统上,它是由用于检测正在运行的 jvmstat 技术配置错误引起的 应用程序。有两种可能的原因:

    1. %TMP%\hsperfdata_username 文件夹权限不足 - make 确保您能够在目录中创建文件并最终 更新完整文件夹访问权限。或者,您可以 只需重新创建应自动设置正确的文件夹 访问权。有关详细信息,请参阅此forums.sun.com thread

    2. 在 FAT 磁盘上有 %TMP%\hsperfdata_username 文件夹 - 由于安全原因,默认情况下 jvmstat 在 FAT 磁盘上不起作用 限制。您可以通过设置 -XX:+PerfBypassFileSystemCheck 标志,用于 VisualVM 和受监控的应用程序。有关详细信息,请参阅 JDK 错误 #5042659。

    这是因为(according to this thread 以上存档):

    你介意 cd'*** 到定义 TMP 的目录,看看是否 有一个名为 hsperfdata_ 的目录,你的 登录。那是检测缓冲区所在的目录 映射(作为共享内存文件)。每次一个java进程启动它 应该在该目录中创建一个文件。

    所以我从中了解到的是,Java 应该将文件写入%TMP%\hsperfdata_<username> 文件夹。该文件帮助内存分析器检测 Java 进程。缺少适当的权限意味着无法写入文件,并且内存分析器无法检测到 Java 进程。

    所以解决方法是只为这个特定文件夹授予适当的权限。

    【讨论】:

      【解决方案3】:

      对我来说,我发现 MAT 会出现错误 org.eclipse.mat.SnapshotException: Error getting Java processes list with 'jps'. Try to configure a JDK for the HPROF jmap provider 在路径中 MemoryAnalyzer-1.10.0.20200225-win32.win32.x86_64\mat\workspace\.metadata\.log
      检查 jps:打开 win cmd 并输入 jps 返回 jps 不存在。
      配置jps到环境的路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-29
        • 2011-11-29
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-09
        相关资源
        最近更新 更多