Tomcat java8 linux获取运行实例的堆转储

Tomcat java8 linux获取运行实例的堆转储,tomcat,memory-management,java-8,heap-dump,Tomcat,Memory Management,Java 8,Heap Dump,在我的一个web应用程序中,存在一个问题: 我想检查对象是否正确初始化 为此,我想提取一个内存转储并对其进行分析。如何在Tomcat中获取内存转储并对其进行分析?(1)通过jps命令获取Tomcat(引导)进程ID # jps 24717 Jps 3652 Bootstrap 3737 DirectoryServer (2) 运行jmap命令 # jmap -dump:format=b,file=./heapdump.hprof 3652 (3) 下载 (4) 通过MAT打开heapdump

在我的一个web应用程序中,存在一个问题:

我想检查对象是否正确初始化

为此,我想提取一个内存转储并对其进行分析。如何在Tomcat中获取内存转储并对其进行分析?

(1)通过jps命令获取Tomcat(引导)进程ID

# jps
24717 Jps
3652 Bootstrap
3737 DirectoryServer
(2) 运行jmap命令

# jmap -dump:format=b,file=./heapdump.hprof 3652
(3) 下载


(4) 通过MAT打开heapdump.hprof

jmap会挂起tomcat还是杀死/阻止tomcat?我想在运行应用程序时转储。否。您可以在运行应用程序时执行此操作。我是否要手动停止应用程序?如果我停止,那么就没有办法获得停止的应用程序的堆转储,因为现在内存中没有用于该进程的堆。jmap是否会在内部停止/终止应用程序?否。在运行应用程序期间可以获得堆转储。如何在运行应用程序中jmap在这里停止运行应用程序。