Windows下Java代码CPU占用高解决问题定位
一、情况
在点击页面时,页面数据不显示,请求到后端的逻辑中。
查看到CPU占用到有90%以上。
二、代码定位
-
打开任务管理器,记录需要查看的进程PID
没有显示PID列可以在这设置
-
打开命令行,导出进程文件
使用该命令可导出Java进程的状态信息
-
由于windows不自带查看线程的工具,所以使用Proccess Exploer查看。
Process Explorer - Windows Sysinternals | Microsoft Docs 下载地址
-
运行Peoccess Exploer,选择需要的进程查看。
-
能够看到占用CPU高的线程,记录下线程的TID
- 把十进制TID用十六进制表示。比如
16396
就是400C
了(因为前面导出的文件线程id以十六进制表示的)
- 打开我们导出的文件,搜索对应的线程,比如:
400c
能够看到代码的835行有问题,我们到代码中看。
三、分析问题,处理问题
在代码中定位到问题所在之后,结合逻辑去查看具体的原因。然后再修改代码,由于不同的业务,出现的问题也不一致,这里就不做过多描述,根据不同逻辑去解决问题即可。