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 等工具分析
