怎么使用jstack精确找到异常代码
生活随笔
收集整理的這篇文章主要介紹了
怎么使用jstack精确找到异常代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.代碼demo//一個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.jar3.找到CPU利用率持續比較高的進程,獲取進程號,此處PID為3036* 命令:top4.找到上述進程中,CPU利用率比較高的線程號TID(十進制數),此處為3046* 命令:ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd5.將獲取的線程號(十進制數)轉換成十六進制* 命令:printf "%x\n" 30466.查看進程PID為3036中 nid為0xb46的線程信息* 命令:jstack -l 30367. 總結:* 可以看到jstack命令的輸出結果是相當準確的 * 顯示耗CPU比較高的代碼與實際情況相同,都是第13行。
?
參考《 http://jingyan.baidu.com/article/4f34706e3ec075e387b56df2.html 》
?
轉載于:https://www.cnblogs.com/polestar/p/7195844.html
總結
以上是生活随笔為你收集整理的怎么使用jstack精确找到异常代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Selenium IDE安装和检查获取的
- 下一篇: 无声无息