4.jmap:Java内存映像工具
常见的生成策略除了此还有
-XX:+HeapDumpOnOutOfMemoryError参数,加上去就会在异常出现之后产生dump文件,
通过-XX:HeapDumpOnCtrlBreak,通过Ctrl+Break让虚拟机产生dump文件
其还能查询finalize执行队列,Java堆和永久代的详细信息,空间使用率和当前使用什么类型的收集器
命令格式
5.jhat:虚拟机堆转储快照分析工具
但是一般不会使用其进行数据库的分析,
1.在服务器上进行dump文件的分析,会消耗大量的服务器的资源
2.jhat的功能很简陋,不如很多商业化工具
6.jstack:Java堆栈跟踪工具
用于生成虚拟机当前时刻的线程快照,就是每一条线程正在执行的方法堆栈集合,生成的线程快照主要目的就是定位出现长时间停顿的原因,例如死锁等问题,通过jstack来查看各线程的调用线程
知道没有响应的线程在做什么事情,或者等待什么资源
常见的命令选项有
在Java的java.lang.Thread新增了一个getAllStackTraces()方法用于获取虚拟中所有的线程的StackTraceElement对象,利用其可以完成大部分功能