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

2021-03-31 00:26

阅读:580

标签:用例   current   sharp   mic   一个   inf   获取   top   sys   

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

技术图片

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

标签:用例   current   sharp   mic   一个   inf   获取   top   sys   

原文地址:https://www.cnblogs.com/hhwww/p/13572975.html


评论


亲,登录后才可以留言!