java 自带的性能分析工具主要在bin目录下,包括jps、jstat、jmap、jhat等另外包括JConsole、Visual VM GUI工具。
此处不记录GUI ,且仅记录个人觉得常用有效的命令。
一、Jps:
jps
当前运行的java程序的pid、启动Main
jps -v
启动的pid 、 Main 与启动VM参数,不包含默认启动参数,如要查看默认启动参数使用 jinfo -flags ${pid}
二、jstat 查看java 运行时相关信息
-gc 显示与GC相关的堆信息
显示GC 相关信息第一列为时间戳,监听14124pid 的进程,每两秒打印一次,共10次。
相关列名中包含 from、to区,新生代老年代,元数据区,新生代gc老年gc的快照信息,详细信息可自行百度
-gccapacity
新生代最大最小、新生代大小、from与to区、新生代区、元数据、压缩、gc次数
-gcutil 显示垃圾收集信息
显示各区当前使用的百分比,gc次数与时间。
三、jinfo 查看正在运行的java应用程序的扩展参数。
-flag 查看具体参数值
-flags 查看所有参数
-sysprops 打印系统参数
四、jmap 生产dump 文件、查看堆内对象实例的统计信息、查看ClassLoader 的信息以及 finalizer 队列。
-histo
-dump 获取当前的堆快照
-clstat
五、jhat 分析堆快照内容
六、jstack 查看堆栈信息
-l 打印堆栈信息
七、jcmd 导出dump、查看java进程、导出线程信息、执行GC
jcmd 14124 help 列出可执行的命令
如:uptime 查看VM运行时间
查看information
重要:导出dump信息,使用MAT 或者VisualVM 等工具分析