pk10计划-如何捕获堆转储

堆转储是Java内存的快照。pk10技巧它包含有关快照被触发时堆中的Java对象和类的信息。诊断任何Java内存相关问题是至关重要的工件。

可以使用多种机制捕获堆转储。在这里,我将展示一些有效的方法。

首先,您需要确定要为其捕获堆转储的Java进程ID。为此,您可以使用JDK中提供的“jps”(JVM进程状态)工具。该工具列出了目标系统上运行的所有Java进程及其进程标识。

1 jps
2 30548 org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
3 36292 Jps
4 37320 AddressBook

您可以使用“jmap”工具来捕获堆转储。jmap将给定进程的堆内存详细信息打印到文件中。jmap工具随JDK提供。以下是您应该如何调用它的方法:jmap -dump:live,file = <文件路径> <pid>


哪里
pid:是Java进程ID,应该捕获堆转储
file-path:是堆转储将被写入的文件路径。

注意:在命令行中传递“实时”选项非常重要。如果这个选项通过,那么只有堆中的活动对象被转储。如果您的应用程序运行的内存很大,那么通常需要很长时间才能捕获堆转储,甚至需要更长的时间才能解析它们。

“实时”对象是具有活动内存引用的对象。为了分析内存泄漏,只需要生动的对象就足够了。

您也可以在JVM遇到OutOfMemoryError时通过传递'-XX:+ HeapDumpOnOutOfMemoryError'系统属性来捕获Heap Dump。此属性是一个非常有效的属性,我会建议所有JVM配置此属性。由于目前的热度,有时运营团队可能会忘记捕获堆转储。在没有堆转储的情况下诊断任何内存问题是非常困难的。在这种情况下,pk10技巧该物业可以成为当日的救星。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.buaamba.net/a/pk10jihua/147.html