热门推荐








成为ps高手要多久
问题描述
- 精选答案
-
java程序CPU利用率高怎么办
请jstack神器来帮忙
本文介绍Linux环境下使用jstack定位问题的秘笈
工具/原料
LinuxjavathreadjstacktoppsprintfRunnable方法/步骤
1.一个CPU密集型线程的demo:
package chapter1;
public class FindJavaThreadInTaskManager {
public static void main(String[] args) {
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。
在Linux上执行上述代码
命令:
java -jar JavaStudy.jar
3.找到CPU利用率持续比较高的进程,获取进程号,此处PID为3036
命令:
top
4.找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046
命令:
ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd
5.将获取的线程号(十进制数)转换成十六进制,此处为0xb46
命令:
printf "%xn" 3046
6.查看进程PID为3036中
nid为0xb46的线程信息。
命令:
jstack -l3036
7.总结:
可以看到jstack命令的输出结果是相当准确的:
显示耗CPU比较高的代码与实际情况相同,都是第13行。
放心的用吧。
Enjoy youself!
猜你喜欢内容
-
耿直讨人嫌的上一句是啥
耿直讨人嫌的上一句是啥回答数有3条优质答案参考
-
“顺情说好话,耿直讨人嫌”什么意思
“顺情说好话,耿直讨人嫌”什么意思回答数有3条优质答案参考
-
顺情说好话耿直讨人嫌上一句
顺情说好话耿直讨人嫌上一句回答数有3条优质答案参考
-
绕了一圈又绕回来了用什么成语形容
绕了一圈又绕回来了用什么成语形容回答数有3条优质答案参考
-
研究生入编薪级标准
研究生入编薪级标准回答数有3条优质答案参考
-
一轮当空是什么意思
一轮当空是什么意思回答数有3条优质答案参考
-
秋天在草地上,小草后面怎么写
秋天在草地上,小草后面怎么写回答数有3条优质答案参考
-
源于历史的四字成语
源于历史的四字成语回答数有3条优质答案参考
-
来源历史的成语
来源历史的成语回答数有3条优质答案参考
-
一什么枣空词语
一什么枣空词语回答数有3条优质答案参考