定位影响CPU高的代码

一、Windows环境

需要使用到的工具软件

  • process explorer
  • jvisualVM
  • eclipse----当前正在运行有问题的代码程序

定位步骤

1、使用process explorer定位占用进程教高的进程

 2、双击进入该进程,点击thread选项卡,查看对应的线程

 

 

3、获取线程的快照

  • 使用jvisualVM进行 线程dump
  • 将dump的线程数据copy至文本编辑器

 

 

 4、将步骤1中的tid转换为16进制的tid16,接着在线程数据中搜索,可以定位到具体的代码

 

  二、Linux

1、使用top命令查看使用率较高的进程(pid),使用命令 top -Hp $pid,查看并记录使用率较高的线程id(tid)

查看%cpu 、time+列的数值 

2、获取线程的快照(jstack) jstack命令  eg: jstack 1642 jstack $pid >$pid.txt

3、将步骤1中的tid,进行16进制转换

4、在快照中搜索strlow($tid_16)

5、查看对应的堆栈信息,定位具体的代码

 

posted @ 2020-03-07 21:12  陈晨晨00  阅读(141)  评论(0)    收藏  举报