zoukankan      html  css  js  c++  java
  • 高手是如何定位内存问题的代码位置的

    java程序CPU利用率高怎么办

    请jstack神器来帮忙

    本文介绍Linux环境下使用jstack定位问题的秘笈

    工具/原料

    • Linux
    • java
    • thread
    • jstack
    • top
    • ps
    • printf
    • Runnable

    方法/步骤

    1. 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());           

                   }       

               }   

           }

      }

      高手是怎么使用jstack精确找到异常代码的
    2. 2将上述代码打成Jar。

      在Linux上执行上述代码

      命令:

      java -jar JavaStudy.jar

      高手是怎么使用jstack精确找到异常代码的
    3. 3    找到CPU利用率持续比较高的进程,获取进程号,此处PID为3036 

      命令:

      top

      高手是怎么使用jstack精确找到异常代码的
    4. 4 找到上述进程中,CPU利用率比较高的线程号TID(十进制数),此处为3046

      命令:

      ps p 3036 -L -o pcpu,pmem,pid,tid,time,tname,cmd

      高手是怎么使用jstack精确找到异常代码的
    5. 5  将获取的线程号(十进制数)转换成十六进制,此处为0xb46

      命令:

      printf "%x "  3046

      高手是怎么使用jstack精确找到异常代码的
    6. 6 查看进程PID为3036中

      nid为0xb46的线程信息。

      命令:

      jstack -l 3036

      高手是怎么使用jstack精确找到异常代码的
    7. 总结:

      可以看到jstack命令的输出结果是相当准确的:

      显示耗CPU比较高的代码与实际情况相同,都是第13行。

      放心的用吧。

      Enjoy youself!

      高手是怎么使用jstack精确找到异常代码的
     
     
  • 相关阅读:
    ubuntu安装gnome桌面,ubuntu系统16升级到18
    重置root密码
    shell中tr的用法
    ubuntu14.04安装zabbix
    TTTTTTTTTTTTTT poj 1127 Jack Straws 线段相交+并查集
    TTTTTTTTTTTTT poj 3057 Evacuation 二分图匹配+bfs
    hdu 1208 Ignatius and the Princess III 划分数,dp
    Poj 3057 未AC http://poj.org/showsource?solution_id=15175171
    poj 3662 Telephone Lines dijkstra+二分搜索
    poj 3684 Physics Experiment 弹性碰撞
  • 原文地址:https://www.cnblogs.com/yepei/p/7080513.html
Copyright © 2011-2022 走看看