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对象,利用其可以完成大部分功能

发表评论

邮箱地址不会被公开。 必填项已用*标注