JDK工具小结

Java内存文件分析
 
  • Thread dump 主要记录JVM在某一时刻各个线程执行的情况,以栈的形式显示,是一个文本文件。通过对thread dump文件可以分析出程序的问题出现在什么地方,从而定位具体的代码然后进行修正。thread dump需要结合占用系统资源的线程id进行分析才有意义。
  • Heap dump 主要记录了在某一时刻JVM堆中对象使用的情况,即某个时刻JVM堆的快照,是一个二进制文件,主要用于分析哪些对象占用了太对的堆空间,从而发现导致内存泄漏的对象。
 

1、jps (JVM Process Status Tool)位于jdk的bin目录下,其作用是显示当前系统的java进程情况及其id号,它查找所有的Java应用程序

 
2、jmap (Memory Map for Java)命令用于生成堆转储快照(一般称为 Heapdump 文件),还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等
 
3、jhat (JVM Heap Analysis Tool)命令与jmap搭配使用,来分析 Heapdump 堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看
 
4、jstat (JVM Statistics Monitoring Tool)是用于监控 虚拟机各种运行状态 信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
 
5、jinfo (Configuration Info for Java)的作用是实时地 查看和调整虚拟机各项参数
 
6、 jstack (Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为 Threaddump 或者 javacore 文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源。
 

 
7、JConsole (Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具
 
 
8、VisualVM (All-in-One Java Troubleshooting Tool)是到目前为止随JDK发布的功能最强大的 运行监视 和故障处理程序,除了运行监视、故障处理外,还提供了很多其他方面的功能,如性能分析
 
JDK工具使用示例:
  1. jps 查看当前运行的Java进程 
  2. jmap 工具生成 Heap dump文件   jmap -dump:format=b,file=heapdump.phrof pid
  3. jhat 分析 Heap dump文件   jhat .\heapdump.phrof  或使用 jvisualvm分析dump文件
  4. http://localhost:7000/ 查看堆文件分析结果
 
JDK工具使用示例:
  1. jstack 39268 > ./threaddump  导出threaddump文本文件
  2. 分析实例 (死锁/线程长时间停顿/死循环等)
 
 
 
 
 
 
       
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值