怎么使用jstack精确找到异常代码
2017-07-17 15:58
323 查看
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.jar 3.找到CPU利用率持续比较高的进程,获取进程号,此处PID为3036 * 命令:top 4.找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046 * 命令:ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd 5.将获取的线程号(十进制数)转换成十六进制 * 命令:printf "%x\n" 3046 6.查看进程PID为3036中 nid为0xb46的线程信息 * 命令:jstack -l 3036 7. 总结: * 可以看到jstack命令的输出结果是相当准确的 * 显示耗CPU比较高的代码与实际情况相同,都是第13行。
参考《 http://jingyan.baidu.com/article/4f34706e3ec075e387b56df2.html 》
相关文章推荐
- 使用jstack精确找到异常代码实例详解
- 使用jstack精确找到异常代码的
- Windows如何使用jstack跟踪异常代码
- 看大神是如何使用jstack跟踪异常代码
- 用top,ps,jstack找到java线程异常代码
- 如何使用MAP文件找到程序崩溃时源码是哪行异常
- 通过崩溃地址中找到异常代码行(转)
- 求助:windows平台下怎么正确编译及使用faac源代码
- 这是一个从网上找到的类,我只会把它当成方法使用,如果用类不知怎么用,先记下来
- Windows Phone 处理 MessageBox导致的应用异常退出以及使用代码方式退出应用
- jar文件使用代码解压出现异常
- 怎么在网站中正确使用JQuery代码
- 提高你的Java代码质量吧:多使用异常,把性能问题放一边
- android 使用proguard 代码混淆后,出现异常 Missing type parameter.
- VC6.0 通过崩溃地址中找到异常代码行
- 在VS.NET2003中使用Macro生成自定义异常代码
- 你们帮我看看如何在datalist里面使用session获取ID值代码改怎么写啊麻烦了
- 如何使用MAP文件找到程序崩溃时源码是哪行异常
- 提高你的Java代码质量吧:多使用异常,把性能问题放一边
- 使用 Stopwatch 精确测试代码运行时间