jvm随笔6-常用jdk的命令行工具

1.jps

用于查看当前虚拟机进程及信息,类似UNIX的ps命令,使用频率很高。

2.jstat

用于监视虚拟机各种运行状态信息的命令行工具,包括类装载,内存,垃圾收集,JIT编译等运行数据。

3.jinfo

可用于读写虚拟机的各项参数,其实是有jsp -v可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的,就要使用jinfo -flag来查看,使用jinfo -flag [+|-] name 或者 jinfo -flag name=value来增删修改虚拟机参数值。

4.jmap

主要用于生成堆转储快照(获得dump文件)(-dump),还可以用于查询finalize执行队列(-finalizerinfo),查询java堆和永久代的详细信息(空间使用率,当前使用哪种收集器时)。

5.jhat

jhat用于与jmap搭配使用,用于分析jmap生成的堆转储快照(jhat内置微型http/html服务器,分析结过可在浏览器中查看)。
一般来说除非没有别的工具了,不然不会直接使用jhat去分析dump文件,原因:

  • 一般不会再部署应用程序的服务器上直接分析dump文件(因为分析工作耗时且消耗硬件),即使可以也尽量把dump文件复制到其他机器上进行分析(但都丢到其他机器上了,就没必要受命令行工具限制)
  • jhat分析功能比较简陋

6.jstack

用于生成虚拟机当前时刻的线程快照(当前虚拟机内每一条线程正在执行方法堆栈的集合),线程快照用于定位线程出现长时间停顿的原因(线程死锁,死循环,活锁等),因为使用jstack查看各个线程的调用堆栈就知道线程再后台干嘛,在等待什么资源。

猜你喜欢

转载自blog.csdn.net/maniacxx/article/details/86617719