zoukankan      html  css  js  c++  java
  • 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情况

  • 相关阅读:
    salesforce rest api 登录 | Authenticating to Salesforce using REST, OAuth 2.0 and Java
    unknown chromium error 400
    项目管理 status email
    项目管理 管理的是什么?
    java 访问 salesforece rest api
    高质量的软件是否值得付出代价?Martin Flower
    Python 3 os.walk使用详解
    体验Managed Extensibility Framework精妙的设计
    分享插件平台相关的源码分析——SharpDevelop、Composition Application Block、Eclipse OSGi、ObjectBuilder
    分享一个与硬件通讯的分布式监控与远程控制程序的设计(上:自动升级与异步事件)
  • 原文地址:https://www.cnblogs.com/binbang/p/6393553.html
Copyright © 2011-2022 走看看