高手怎么查找CPU过高的Java代码。具体到行

时间:2020-09-07 18:47:25   收藏:0   阅读:40

1.首先写一个测试用例;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World!");
        Thread thread = new Thread(new Worker());

        thread.start();
    }

    static class Worker implements Runnable {

        @Override

        public void run() {

            while (true) {

                System.out.println("Thread Name:" + Thread.currentThread().getName());

            }

        }

    }
}

2.然后打包成jar包,打包过程省略。。

java -jar 项目名

 3.利用top命令找到pid  

技术图片

4.  找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046

ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd

5.  将获取的线程号(十进制数)转换成十六进制,此处为0xb46

printf "%x\n"  3046

6.查看进程PID为3036中  nid为0xb46的线程信息

jstack -l 3036|more

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!