有没有实时查看JVM堆内存中对象变化的软件?
Is there a software for viewing changes in objects in the JVM heap memory in real time?
假设您有一个 运行 Java 应用程序,您想要检查单击按钮更改了哪些对象属性以及 JVM 堆内存中的位置。在一个小程序中,您可以逐步调试点击,但如果它是一个非常大的程序,这可能会花费很多时间。那么有没有一个JVM监视器可以记录和显示这样的事件发生后堆中的变化。我知道我可以在事件前后进行堆转储然后进行比较,但我想问一下是否有更智能的方法。类似于 Windows 的 RegMon 或 Filemon,但用于 Java JVM。谢谢:)
实际上采用堆转储 'is' 智能方式,因为必须了解(尤其是在 GUI 框架中)单击会改变很多,而不仅仅是按钮参数。
这涉及到很多东西。
您可能想要使用内置的 Eclipse 调试器,它允许您跟踪特定变量以及整个对象的变化。
如果您对内部结构更感兴趣,我可以推荐默认捆绑在 jdk 中的 jvisualvm。它将附加到热点 JVM 实例以监视其内部。
或者:
- http://visualvm.java.net/ - 通用 JVM 跟踪的多功能工具。
- https://eclipse.org/mat/ - 出色的内存分析器,例如可以进行两次堆转储,并清楚地向您显示发生了什么变化<<--- 可能是您正在寻找的内容
您可以按照 Jitsu 的建议使用堆转储并尝试学习那些堆转储。
其他方式有:
Eclipse Memory Analyzer:
Java 帮助您发现内存泄漏并减少内存消耗的堆分析器
VisualVM & JConsole:它提供了很好的 UI 来分析你的 jvm 内存
JStat: 是一个java虚拟机统计和监控工具
Netbeans Profiler:与 Netbeans 一起提供,可以对您的应用程序进行分析
JProfiler:这是一个付费工具,可以让您更深入地了解 java 应用程序分析以分析内存。
FusionReactor:另一个付费工具,可实时洞察生产环境中的 java 应用程序 运行 以分析代码、内存和线程。
假设您有一个 运行 Java 应用程序,您想要检查单击按钮更改了哪些对象属性以及 JVM 堆内存中的位置。在一个小程序中,您可以逐步调试点击,但如果它是一个非常大的程序,这可能会花费很多时间。那么有没有一个JVM监视器可以记录和显示这样的事件发生后堆中的变化。我知道我可以在事件前后进行堆转储然后进行比较,但我想问一下是否有更智能的方法。类似于 Windows 的 RegMon 或 Filemon,但用于 Java JVM。谢谢:)
实际上采用堆转储 'is' 智能方式,因为必须了解(尤其是在 GUI 框架中)单击会改变很多,而不仅仅是按钮参数。
这涉及到很多东西。 您可能想要使用内置的 Eclipse 调试器,它允许您跟踪特定变量以及整个对象的变化。
如果您对内部结构更感兴趣,我可以推荐默认捆绑在 jdk 中的 jvisualvm。它将附加到热点 JVM 实例以监视其内部。
或者:
- http://visualvm.java.net/ - 通用 JVM 跟踪的多功能工具。
- https://eclipse.org/mat/ - 出色的内存分析器,例如可以进行两次堆转储,并清楚地向您显示发生了什么变化<<--- 可能是您正在寻找的内容
您可以按照 Jitsu 的建议使用堆转储并尝试学习那些堆转储。
其他方式有:
Eclipse Memory Analyzer: Java 帮助您发现内存泄漏并减少内存消耗的堆分析器
VisualVM & JConsole:它提供了很好的 UI 来分析你的 jvm 内存
JStat: 是一个java虚拟机统计和监控工具
Netbeans Profiler:与 Netbeans 一起提供,可以对您的应用程序进行分析
JProfiler:这是一个付费工具,可以让您更深入地了解 java 应用程序分析以分析内存。
FusionReactor:另一个付费工具,可实时洞察生产环境中的 java 应用程序 运行 以分析代码、内存和线程。