性能诊断是软件工程师在日常工作中经常要面对和解决的问题,在用户体验至上的今天,解决好应用的i性能问题能带来巨大的收益。
Java作为最流行的编程语言之一,其应用性能诊断一直受到业界的广泛关注。可能造成Java应用出现性能问题的因素非常多,比如
-
线程控制
-
磁盘读写
-
数据库访问
-
网络IO
-
垃圾收集
要想定位这些问题,一款优秀的性能诊断工具必不可少。
-
-q: 仅显示ID
-
-l 输出程序的全限定名
-
-m 输出进程启动时传递给main的参数
-
-v 列出JVM参数
如果Java进程关闭了默认开启的UserPerfData
参数,则jps无法探测。
-
jstat 用于监视虚拟机各种运行状态信息,比如类装载,内存,GC,JIT编译等。
-
option
-
-t 表示在输出信息前加时间戳 表示程序的运行时间 单位 s
-h 表示多少行内容之后输入一次表头信息
count 与上个参数 配合使用 表示一共输出多少次 空表示一直输出
jinfo
-
option
在JDK1.7之后,新增了一个命令行工具jcmd ,它是一个多功能的工具,实现之前的所有功能。
通过jstatd 可以建立本地计算机与远程监控工具的通信。jstatd将本机的Java应用程序信息传递给远程计算机。