0%

Windows下JAVA运行后,CPU使用率100%解决办法

新版本项目打包的时候发现电脑特别卡,打开任务管理器发现CPU使用率达到100%,以为是电脑卡了,后来布到另一个电脑上,发现CPU仍然是100%…对不起我的电脑
放一下成功解决的步骤~

1. 先下载个Process Explorer

这个软件是可以查看进程的CPU占有率,任务管理器只能看到进程的CPU占有率,放个地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

2. 打开任务管理器

打开任务管理器,找到java,右键点击【转到详细信息】,或者直接到详细信息里找java,查看java对应的PID。(这是win10下的,win7可以点击【查看】- > 【选择列】然后点击PID)
在这里插入图片描述
在这里插入图片描述

3. 管理员打开cmd

输入命令: jstack [PID] > c:/cdf.log

jstack -1 [PID] > c:/[pid].stack
后面是文件名,可以自定义
在这里插入图片描述
在这里插入图片描述
C盘文件夹:
在这里插入图片描述
这个是把java进程的信息导出来到文件里,方便后面操作来定位异常代码。
ps: 有的博客的命令是 jstack -1 12580 > +文件,我加上-1后会无法导出或导出文件是0KB,去掉-1就好了。
在这里插入图片描述

4. 把下载的Process Explorer解压并运行

解压后可以直接运行。运行后找到java,右键点击【Properties…】,然后点击【Threads】
在这里插入图片描述
在这里插入图片描述
找到CPU使用率高的线程,记住TID,然后打开电脑上的计算机:
在这里插入图片描述
在这里插入图片描述
输入刚刚的线程号:1156
在这里插入图片描述
找到他对应的十六进制是:484

5. 打开之前导出的进程文件,输入刚刚转换的十六进制数

在这里插入图片描述
可以定位到异常的部分(我的之前改过了,正常应该是定位到哪个文件下的哪一行。。。),然后去把bug改掉就好了~