查看java程序的堆栈信息来优化代码

查看当前进程下线程的CPU消耗日志

获取运行程序的进程
ps aux|grep ‘运行程序名称’ 获取进程号

列出了由进程号为的进程创建的所有线程。“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。
ps -T -p pid进程号

让top输出某个特定进程并检查该进程内运行的线程状况
top -H -p

通过使用jps 命令获取需要监控的进程的pid,然后使用jstack pid 命令查看线程的堆栈信息。 通过jstack 命令可以获取当前进程的所有线程信息。
每个线程堆中信息中,都可以查看到线程ID、线程的状态(wait、sleep、running 等状态)、是否持有锁信息等。

jstack -l >jvm_listlocks.txt

jstack pid |grep tid -A 30 查看该线程堆栈信息
ps: pid 是进程ID tid 是线程ID -A 30 表示显示最后30行

1、查看java进程
ps -ef|grep java
得到pid
或者 jps -l 可以查看到进程id

2、top -Hp [pid] 或者 ps -mp [pid] -o THREAD, tid, time 查看最耗时的 TID即线程id
prinrf “%x\n” [tid] 转成16进制

3、查看java中的线程类相关信息
jstack [pid] | grep [tid]
jstack -l [pid] 列出所有线程信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值