怎么使用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.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精确找到异常代码的
https://blog.csdn.net/mr__fang/article/details/68496248
- 利用jstack 找到异常代码
1.top找出耗时pid进程或ps -ef |grep xxx 找出pid 2.ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd 3036为pid 3.prin ...
- VC6.0 通过崩溃地址中找到异常代码行
来源:http://blog.csdn.net/mydeardingxiaoli/article/details/20371585 这是从“VC编程经验总结7”中转出来的借花献佛——如何通过崩溃地址找 ...
- APP反编译第一课《如何找到核心代码》
相信很多人都应该会去接触APP反编译,本小七给大家带来入门级别套路,自己也在慢慢摸索学习,一起成长吧.第一步,反编译需要的工具有:一.java环境,其实这里你只要安装了burp就不用管这个的二.apk ...
- java-IO流-字节流-概述及分类、FileInputStream、FileOutputStream、available()方法、定义小数组、BufferedInputStream、BufferedOutputStream、flush和close方法的区别、流的标准处理异常代码
1.IO流概述及其分类 * 1.概念 * IO流用来处理设备之间的数据传输 * Java对数据的操作是通过流的方式 * Java用于操作流的类都在IO包中 * ...
- Windows如何使用jstack跟踪异常代码
维护服务器时,会出现java进程在CPU.内存.硬盘上总是出现异常情况. 如何找到是哪些代码出现这些异常呢? 本文使用jstack来实现这个需求 工具/原料 java jstack Process ...
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线 ...
- VS调试异常代码 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理
碰到这个异常的原因很偶然: 现象:Solution在ReBuild过程中断电了,来电恢复了,重析编译整个Solution不报错,但在浏览页面时始终无法正常浏览,而在design的视图中,每个aspx的 ...
- java程序死锁,3种方式快速找到死锁代码
java程序中出现死锁问题,如果不了解排查方法,是束手无策的,今天咱们用三种方法找到死锁问题. 运行下面代码 package com.jvm.visualvm; /** * <a href=&q ...
随机推荐
- .NET Best Practices
Before starting with best practices tobe followed, it is good to have clear understanding of how mem ...
- JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈
构造函数跟构造方法是一样的,只是称呼不同; C语言里叫函数,Java里叫方法. 成员方法必须有返回类型即使是没有返回,也要写上void 构造方法没有返回类型,而且和类名一样!一个类里面,一看就知道了譬 ...
- swig和angular双花括号的冲突
swig和angular都用{{name}}来作为模板中变量的取值, 那么要共用的话怎么办: {% raw %}{{ foobar }}{% endraw %} 或者 config(['$interp ...
- 【DeepLearning】汉字手写体识别
http://blog.topspeedsnail.com/archives/10897 两个双卷积池化 + dropout + 2个全链接 + softmax
- apt 之 最强技能:【欺骗】,文雅点【偷梁换柱】!
apt这种软件包管理系统,有个最大特点是:只照本宣科,而不管实际情况. 所以,我们用户就可以利用这一点,来欺骗它,达到我们的目的. ------------------------------好了,现 ...
- 纯CSS制作的TAB选项卡
代码 这里主要使用表单的单选按钮来实现这个TAB显示和隐藏,首页tab里的内容默认隐藏,如果单选按钮为选中状态(checked)就显示内容.具体请看下面代码. 关于兼容性,因为是用CSS3来制作的,所 ...
- MTK 强制横屏
frameworks\base\policy\src\com\android\internal\policy\impl目录下的PhoneWindowManager.java的rotationForOr ...
- Unity&C# Time时间相关
1.Unity Time类 1/ Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算. 2/ Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止 ...
- windows 7 64位出现Oracle中文乱码
提示oracle客户端无法连接指定字符 安装好客户端之后,如图 将数据库dbhome_1中的network文件夹全部复制到客户端,如图 然后在设置环境变量:F:\app\Administrator\p ...
- Tree Recovery(前序中序求后序)
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14640 Accepted: 9091 De ...