java - 使用包含多个 Web 应用程序的 VisualVM 分析堆转储

标签 java jvisualvm heap-dump

我获得了托管多个 Web 应用程序的 tomcat 服务器的堆转储。

有几个类在每个应用程序中都有实例。当我列出转储中包含的所有类时,我会得到这些类的多行,每行显示不同数量的实例。因此,似乎每一行都显示了某个 Web 应用程序中所述类的实例数量。

当我使用 OQL 来计算类的所有实例时,例如select count( heap.instances(myClass) ) 我没有得到 myClass 所有实例的总数,但得到的金额等于前面提到的列表中显示的金额之一。

因此,在我看来,由于某种原因,OQL 查询仅限于一个 Web 应用程序上下文,即使堆转储包含多个 Web 应用程序上下文。

如何访问堆转储的所有实例?

最佳答案

看来您至少可以通过双击类 View 中的相应条目来导航所需的实例。但仍然使用 OQL 来导航似乎是不可能的。

使用 Eclipse Memory Analyzer 在这方面有帮助,但还有其他缺点,因此不幸的是,对我来说这没有多大帮助。

关于java - 使用包含多个 Web 应用程序的 VisualVM 分析堆转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480895/

相关文章:

java - 查找输入数组的多数元素的程序不起作用

process - jvisualvm 没有列出某些 Java 进程

jvisualvm - 多核机器上的 VisualVM CPU 图

java - 如何从java堆转储生成图形图像

java - 以 int 数组 (int[]) 作为值的 HashMap 在获取时返回 null?

java - 如何在我的 Java 代码中将 LibSVM 与 Weka 一起使用?

java - 需要在 VMWare 下在 Windows 上运行 VisualVM 的帮助

java - 由于 "unable to create new native thread"导致 OutOfMemory 时的堆转储

lambda 表达式的 Java 堆转储分析

java - 将 'int' 转换为 'long' 或使用 'long' 访问太长的数组