问题标签 [eclipse-mat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Eclipse MAT OQL 某个包中的类列表
使用 Eclipse MAT 1.9.1 OQL
我想列出某个包中堆转储中的所有类。
我正在尝试查询:
得到:
java.lang.NullPointerException: idx at org.eclipse.mat.parser.internal.oql.compiler.Operation$GreaterThan.evalNull(Operation.java:232) at org.eclipse.mat.parser.internal.oql.compiler.Operation $RelationalOperation.compute(Operation.java:92) at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.accept(OQLQueryImpl.java:1161) at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.accept (OQLQueryImpl.java:1151) 在 org.eclipse.mat.parser.internal.oql.OQLQueryImpl.filterClasses(OQLQueryImpl.java:1133) 在 org.eclipse.mat.parser.internal.oql.OQLQueryImpl.doFromItem(OQLQueryImpl.java :921) 在 org.eclipse.mat.parser.internal.oql.OQLQueryImpl.execute(OQLQueryImpl.java:667) 在 org.eclipse.mat.parser.internal.oql.OQLQueryImpl.internalExecute(OQLQueryImpl.java:690) 在org.eclipse.mat.inspections.OQLQuery.execute(OQLQuery.java:52) 在 org.eclipse.mat.inspections。OQLQuery.execute(OQLQuery.java:1) 在 org.eclipse.mat.query.registry.ArgumentSet.execute(ArgumentSet.java:132) 在 org.eclipse.mat.ui.snapshot.panes.OQLPane$OQLJob.doRun( OQLPane.java:468) 在 org.eclipse.mat.ui.editor.AbstractPaneJob.run(AbstractPaneJob.java:34) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
请指教。
java - Java 堆转储文件 (.hprof) 远大于 Eclipse MAT 中的堆大小
我在使用 Java 的生产中经常遇到一些完整的 GC 问题,我怀疑内存是由网络库分配的,用于缓冲 TCP 请求结果。
当内存使用率很高(大约 8GB)时,我已经转储了 Java 堆。我试图用eclipse MAT分析.HPROF文件,文件大约8GB。
但是在 Eclipse MAT 中,总堆大小约为 200 MB,所以我找不到哪些对象占用了 8GB 堆内存。
由于 eclipse MAT 没有显示完整的堆转储内容,我不知道如何找到应用程序占用这么多内存的原因。
java - 内存不足:元空间
我在元空间中出现内存不足。正如我在谷歌搜索后理解的那样,元空间中的内存不足错误可能是由于 Classloader 中的泄漏。因此,为此我开始分析 Eclipse MAT 中的堆转储并打开“类加载器资源管理器”,它给出以下内容:
正如我从上述数据中了解到的那样,com.newrelic.bootstrap.BootstrapAgent$JVMAgentClassLoader 占用了 396,707 个未进行垃圾回收的实例。我的理解正确吗?
在我选择了这一行并打开“GC Roots 的路径 -> 排除所有幻象/弱/软 Ref”后,我观察到 Shallow Heap 和 Retained Heap 分别为 96 和 231,040。
在我为类 org.apache.felix.framework.BundleWiringImpl$BundleClassLoader 在“类加载器资源管理器”中选择另一行并再次打开“GC 根路径-> 排除所有幻象/弱/软引用”之后,现在我看到了这些数据:
从这些数据中,是否可以安全地得出结论,在此类中存在泄漏: com.newrelic.agent.util.DefaultThreadFactory$AgentThreadImpl 不是垃圾收集的?
如果没有,请建议我还应该检查什么?
linux - org.eclipse.swt.SWTError: 没有更多句柄 [gtk_init_check() failed]
我正在尝试在 Linux(ubuntu 18.04)上使用 eclipse MAT 工具并收到以下错误:
如果你们知道任何解决问题的方法,将不胜感激。
已经解决了关于 stackoverflow 的所有类似问题以及以下链接: https ://unix.stackexchange.com/questions/94497/org-eclipse-swt-swterror-no-more-handles-gtk-init-check-运行时失败
但没有任何帮助。
eclipse - HEAP DUMP 太大,无法在 Eclipse MAT 中打开
我有一个堆转储导致我的程序出现内存不足异常,堆转储的大小为 12GB,因此我无法在我的 MAT 分析器中加载它,我可以尝试哪些替代方案,或者是否有我可以将堆转储上传到 MAT。
garbage-collection - 如何获取 JSON/XML 格式的 Eclipse MAT 内存泄漏可疑报告?
我正在尝试将 Java 内存分析添加到我的 devops 管道中。为此,我正在使用 Eclipse MAT 命令行脚本。一旦我提供 hprof 文件作为输入,它就会生成可疑报告。我需要解析这个 HTML 报告并据此做出决定。这很麻烦,而且解析也不是结构化的。我想要 XML/JSON 报告,或者我想看看 Eclipse MAT 是如何生成实际报告的。如果我发现我可以获取代码并根据我的需要进行自定义。对此有任何建议。
java - Identifying memory leak suspects
My application is a Java Spring boot app that expose set of SOAP APIs. It uses JAXB2 for object marshaling and un-marshaling. App use large number of south bound SOAP end points. I can see a steady slow memory growth in the app. I took a heap dump and analyzed it using MAT. MAT has given following leak suspects. How can I find the root cause of memory leak ?
java - Java 内存问题:Java.lang.ref.finalizer 对象
在大多数关于由终结器对象引起的内存泄漏的研究中,无论是在我们的代码中还是在依赖库中,都应该覆盖 finalize 方法。但在我的整个项目中,它无处使用。(我正在使用 Java8)
我正面临内存问题,对于我的服务,一旦我重新启动服务,可用内存就会开始减少,并且在 7 天内它会下降 95%,并且稍后会出现频繁的警告。
上图显示了 Y 轴上的可用内存,可以看到它减少了。上图中的所有峰值都用于重新启动服务。
当我通过 eclipse Mat 中的堆转储时,我看到以下内容:
可以看出,几乎所有空间仅由 1 个对象占用,即java.lang.ref.Finalizer
,但是当我在项目中进行字段 Java 搜索时,我没有看到任何使用 finalize() 方法的代码。
我已经走到了死胡同,试图找到内存泄漏。是否有任何其他原因可能导致该问题。
java - Eclipse MAT 报告仅列出前 10 个对象
我正在使用 MAT 分析我的堆并查看一些有用的报告。例如,此报告列出了空集合中可能的内存浪费。
MAT 版本:1.11.0
正如您从屏幕截图中看到的那样,报告中的每个项目仅列出所有对象的前 10 个。
如果我单击“...对象的前 10 个”,期望看到更多对象,实际上并非如此。我能看到的只有那 10 个对象。我看不到显示更多对象的方法,例如“显示下一个 10 个对象”按钮。请参阅下面的屏幕截图。
我正在寻找一种查看所有 365 个对象的方法。某处有这样的按钮吗?或者我必须为此编写 OQL?我真的是 OQL 的新手,有人能给我举个例子吗?感谢任何帮助!
注意: ThreadLocalMap 仅用于说明和更好的屏幕截图,我实际上是在寻找空的 HashMap 的来源。