• JDK 部分工具使用方法


    javap.exe

    javap是一个Java类文件反汇编程序,可以查看Java编译器生成的字节码,是分析代码的一个好工具。

    1、javac xx.java
    2、javap -c xx      or    javap xx
    

      

    jvisualvm

    jvisualvm是一个Java虚拟机监控和分析工具,该工具提供了一个图形界面窗口,并且可以直观的了解Java应用程序的运行时信息。jvisualvm集成了许多工具,比如像jmp、jinfo、jstat、jstack、JConsole等。

    jstat

    -class:统计class loader行为信息 
    -compile:统计编译行为信息 
    -gc:统计jdk gc时heap信息 
    -gccapacity:统计不同的generations(包括新生区,老年区,permanent区)相应的heap容量情况 
    -gccause:统计gc的情况,(同-gcutil)和引起gc的事件 
    -gcnew:统计gc时,新生代的情况 
    -gcnewcapacity:统计gc时,新生代heap容量 
    -gcold:统计gc时,老年区的情况 
    -gcoldcapacity:统计gc时,老年区heap容量 
    -gcpermcapacity:统计gc时,permanent区heap容量 
    -gcutil:统计gc时,heap情况 
    -printcompilation:不知道干什么的,一直没用过。 
    一般比较常用的几个用法: 

    jstat -class 18212 1000 10(每隔1秒监控一次,一共做10次)

      Loaded:Number of classes loaded.

      Bytes:Number of Kbytes loaded.

      Unloaded:Number of classes unloaded.

      Bytes:Number of Kbytes unloaded.

      Time:Time spent performing class load and unload operations.



    jstat -gc 18212 2000 20 (每隔2秒监控一次,共20次)

      S0C:Current survivor space 0 capacity (KB).

      S1C:Current survivor space 1 capacity (KB).

      S0U:Current survivor space 0 utilization (KB).

      S1U:Current survivor space 1 utilization (KB).

      EC:Current eden space capacity (KB).

      EU:Eden space utilization (KB).

      OC:Current old space capacity (KB).

      OU:Old space utilization (KB).

      PC:Current permanent space capacity (KB).

      PU:Permanent space utilization (KB).

      YGC:Number of young generation GC Events.

      YGCT:Young generation garbage collection time.

      FGC:Number of full GC events.

      FGCT:Full garbage collection time.

      GCT:Total garbage collection time.

    jstat -gcutil 18212 1000 10 (按百分比显式) 

    jstat -compiler 18212 (显示VM实时编译的数量等信息) 
    jstat –gccapacity :可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。

     jstat -gcnew 18212 (new对象数)

      

    jstack

    jstack 18212 (linux下特有)

    jstack:可以观察到jvm中当前所有线程的运行情况和线程当前状态

    jstack是非常有用的。命令格式:jstack 进程pid
                  当程序出现死锁的时候,使用命令:jstack 进程ID > jstack.log,然后在jstack.log文件中,搜索关键字“BLOCKED”,定位到引起死锁的地方。

    jconsole

    jconsole – jconsole是基于Java Management Extensions (JMX)的实时图形化监测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时的性能和资源的监控,包括了Java 程序的内存使用,Heap size, 线程的状态,类的分配状态和空间使用等等。

    jmap – jmap 可以从core文件或进程中获得内存的具体匹配情况,包括Heap size, Perm size等等,目前只有在Solaris和Linux的JDK版本里面才有。

    jmap (linux下特有,也是很常用的一个命令)
    观察运行中的jvm物理内存的占用情况。
    参数如下:
    -heap
     :打印jvm heap的情况
    -histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
    -histo:live : 同上,但是只答应存活对象的情况
    -permstat: 打印permanent generation heap情况

  • 相关阅读:
    pycharm的各种设置,配置
    python中文件路径的问题
    Pycharm使用的一些问题!!!
    networkx如何将图写到邻接矩阵里?
    networkX如何读取存储图的二进制.dat文件
    再次理解线性回归与梯度下降
    Python DataFrame 如何删除原来的索引,重新建立索引
    NetworkX初相识
    haproxy + keepalived + mycat 高可用与负载均衡集群配置 centos7
    otter+canal
  • 原文地址:https://www.cnblogs.com/binbang/p/6393553.html
Copyright © 2020-2023  润新知