Java常见性能分析工具

jps命令

jps是JDK提供的用于查看当前Java虚拟机运行了哪些Java进程。
在这里插入图片描述

top命令

top命令使我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。在这里插入图片描述
top -Hp pid可以查看与进程相关的线程的系统资源使用情况:
在这里插入图片描述

vmstat命令

vmstat是一个指定周期和采集次数的虚拟内存检测工具,可以统计内存,CPU,swap的使用情况,它还
有一个重要的常用功能,用来观察进程的上下文切换。
在这里插入图片描述
字段说明如下:

字段说明
r运行队列中进程数量(当数量大于CPU核数表示有阻塞的线程)
b等待IO的进程数量
swpd使用虚拟内存大小
free空闲物理内存大小
buff用作缓冲的内存大小(内存和硬盘的缓冲区)
cache用作缓存的内存大小(CPU和内存之间的缓冲区)
si每秒从交换区写到内存的大小,由磁盘调入内存
so每秒写入交换区的内存大小,由内存调入磁盘
bi每秒读取的块数
bo每秒写入的块数
in每秒中断数,包括时钟中断。
cs每秒上下文切换数。
us用户进程执行时间百分比(user time)
sy内核系统进程执行时间百分比(system time)
waIO等待时间百分比
id空闲时间百分比
jstack命令

jstack是JDK工具命令,它是一种线程堆栈分析工具,最常用的功能就是使用 jstack pid 命令查看线程的堆栈信息,也经常用来排除死锁情况。
在这里插入图片描述

jstat 命令

检测Java程序运行的实时情况,包括堆内存信息和垃圾回收信息,我们常常用来查看程序垃圾回收情况。常用的命令是jstat -gc pid
在这里插入图片描述
信息字段说明如下:

字段说明
S0C年轻代中 To Survivor 的容量(单位 KB)
S1C年轻代中 From Survivor 的容量(单位 KB)
S0U年轻代中 To Survivor 目前已使用空间(单位 KB)
S1U年轻代中 From Survivor 目前已使用空间(单位 KB)
EC年轻代中 Eden 的容量(单位 KB)
EU年轻代中 Eden 目前已使用空间(单位 KB)
OC老年代的容量(单位 KB)
OU老年代目前已使用空间(单位 KB)
MC元空间的容量(单位 KB)
MU元空间目前已使用空间(单位 KB)
YGC从应用程序启动到采样时年轻代中 gc 次数
YGCT从应用程序启动到采样时年轻代中 gc 所用时间 (s)
FGC从应用程序启动到采样时 老年代(Full Gc)gc 次数
FGCT从应用程序启动到采样时 老年代代(Full Gc)gc 所用时间 (s)
GCT从应用程序启动到采样时 gc 用的总时间 (s)
jmap命令

jmap也是JDK工具命令,他可以查看堆内存的初始化信息以及堆内存的使用情况,还可以生成dump文件来进行详细分析。查看堆内存情况命令jmap -heap pid
在这里插入图片描述

mat内存工具

MAT(Memory Analyzer Tool)工具是eclipse的一个插件(MAT也可以单独使用),它分析大内存的dump文件时,可以非常直观的看到各个对象在堆空间中所占用的内存大小、类实例数量、对象引用关系、利用OQL对象查询,以及可以很方便的找出对象GC Roots的相关信息。

idea中也有这么一个插件,就是JProfiler。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值