IntelliJ IDEA中java程序占用CPU过高的调试方法

IntelliJ IDEA中java程序占用CPU过高的调试方法

描述

IntelliJ IDEA中web工程部署到tomcat一段时间后出现CPU占用达到100%的问题

任务管理器界面

一、下载process explorer查看高占用进程

process explorer是Windows系统和应用程序监视工具。
process explorer下载:https://technet.microsoft.com/en-us/sysinternals/bb896653/ 

process explorer界面

可以看到一个java.exe占用cpu超过77%,双击java.exe弹出右边界面,显示进程中线程信息。我们将java.exe所在进程数(如8800)和占用
较高的几个子线程数(如5424、2240、3472、9104、9856、1144)记录下来。

二、输出进程信息

在IntelliJ IDEA的Terminal中输入 jstack -l pid > file.txt (pid为之前记录的进程数,Process Explorer中可以看到)

Terminal

可以看到在工程目录下生成了指定进程信息的文件

在这里插入图片描述

三、读取进程信息

打开进程信息文件,我们需要找到是进程中哪几个线程占用了cpu的资源。将之前记录的子线程数转成16进制的形式。
(5424、2240、3472、9104、9856、1144分别对应nid=0x1530、0x8c0、0xd90、0x2390、0x2680、0x478)
然后在得到的进程文件中分别查找对应线程正在执行的java代码行。

0x1530
0x2680

查找完成,6个占用最高的线程都是重复执行在以上两个位置。这个问题我还没有解决,解决完后会再次编辑。

四、相关链接

https://www.cnblogs.com/bingyimeiling/p/10278477.html
https://blog.csdn.net/moest/article/details/52034326

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值