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精确找到异常代码的更多相关文章

  1. 使用jstack精确找到异常代码的

    https://blog.csdn.net/mr__fang/article/details/68496248

  2. 利用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 ...

  3. VC6.0 通过崩溃地址中找到异常代码行

    来源:http://blog.csdn.net/mydeardingxiaoli/article/details/20371585 这是从“VC编程经验总结7”中转出来的借花献佛——如何通过崩溃地址找 ...

  4. APP反编译第一课《如何找到核心代码》

    相信很多人都应该会去接触APP反编译,本小七给大家带来入门级别套路,自己也在慢慢摸索学习,一起成长吧.第一步,反编译需要的工具有:一.java环境,其实这里你只要安装了burp就不用管这个的二.apk ...

  5. java-IO流-字节流-概述及分类、FileInputStream、FileOutputStream、available()方法、定义小数组、BufferedInputStream、BufferedOutputStream、flush和close方法的区别、流的标准处理异常代码

    1.IO流概述及其分类 * 1.概念      * IO流用来处理设备之间的数据传输      * Java对数据的操作是通过流的方式      * Java用于操作流的类都在IO包中      *  ...

  6. Windows如何使用jstack跟踪异常代码

    维护服务器时,会出现java进程在CPU.内存.硬盘上总是出现异常情况. 如何找到是哪些代码出现这些异常呢? 本文使用jstack来实现这个需求 工具/原料   java jstack Process ...

  7. windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码

    我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线 ...

  8. VS调试异常代码 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理

    碰到这个异常的原因很偶然: 现象:Solution在ReBuild过程中断电了,来电恢复了,重析编译整个Solution不报错,但在浏览页面时始终无法正常浏览,而在design的视图中,每个aspx的 ...

  9. java程序死锁,3种方式快速找到死锁代码

    java程序中出现死锁问题,如果不了解排查方法,是束手无策的,今天咱们用三种方法找到死锁问题. 运行下面代码 package com.jvm.visualvm; /** * <a href=&q ...

随机推荐

  1. ant学习笔记-taskdef

    1.声明task jar包中指定的task <taskdef name="xmltask“ classname="com.oopsconsultancy.xmltask.an ...

  2. 1. 请问PHP里的ECHO是什么意思 ?请问PHP里的ECHO是什么意思???有什么作用???又应该怎么使用???

    直接输出字符或字符串的意思: 例如:echo "abc"; 就会输出abc echo 'abc' 一样是输出abc . 如果仅仅只输出字符串的话,单引号和双引号是输出内容是一样的, ...

  3. Linux 下 Nginx + JDK + Tomcat + MySQL 安装指南

    转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52026342 Nginx 是一款高性能的 http 服务器/反向代理服务器/电子邮 ...

  4. Dockerfile 常用指令

    下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任意字符串. COPY将文件从 build ...

  5. 【转】Spring Boot干货系列:(二)配置文件解析

    转自:Spring Boot干货系列:(二)配置文件解析 前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此 ...

  6. 配置IP

    配置目的:配置IP为静态,让IP地址不变,方便长时间连接. 几个命令: dhclient 自动获取IP; 杀死进程:dhclient -r ip addr 显示网卡情况,了解到IP地址: 编辑配置文件 ...

  7. spring 配置 Java配置类装配bean

    https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...

  8. linux 安装lnmp

    wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd ln ...

  9. python通过标准输入读取内容,读取键盘输入的内容?接收用户输入?

    需求说明: 在交互式脚本中,需要用户手动输入内容,并对内容进行处理.在这里记录下通过 python的内置函数input()读取标注输入的内容.默认的标准输入是键盘. 操作过程: 1.通过input() ...

  10. 【jmeter】 jmeter 测试HTTP接口

    到apache官网下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 1.运行 bin/jmeter.bat ,添加线程组 2.添加HTTP请求 ...