`
lovnet
  • 浏览: 6705541 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

JDK的命令行工具

 
阅读更多
这些命令行工具大多数是lib\tools.jar类库的一层薄包装而已,他们主要的功能代码是在tools类库中实现的。


tools.jar中的类库不属于Java的标准API,如果引入这个类库,就意味着你的程序只能运行在Sun Hotspot(或一些从Sun买了JDK源码License的虚拟机,如IBM J9、BEAJRockit)上面,或者在部署程序时需要一起部署tools.jar。


Sun JDK监控和故障处理工具:
jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。
jstat JVM Statistics Monitoring Tool,用户手机HotSpot虚拟机各方面的运行数据








jps:虚拟机进程状况工具
-q 只输出LVMID,省略主类的名称
-m 输出虚拟机进程启动时传递给主类main()函数的参数
-l 输出主类的全名,如果进程执行的是Jar包,输出Jar路径
-v 输出虚拟机进程启动JVM参数




jstat:虚拟机统计信息监视工具
可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
命令格式 jstat [option vmid [interval[s|ms] [count]]]
如果是远程虚拟机进程 那么VMID格式:[protocol:][//]lvmid[@hostname[:port]/servername]
参数interval和count代表查询间隔和次数,如果省略了这两个参数,说明只查询一次。


假如需要每250毫秒查询一次进程2764垃圾收集的状况,一共查询20次:
jstat -gc 2764 250 20


选项option代表着用户希望查询的虚拟机信息,主要分为3类:类装载、垃圾收集和运行期编译状况。
jstat工具主要选项:
-class 监控类装载、卸载数量、总空间及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区、2个survivor区、老年代、永久代等的容量,已用空间、GC时间合计等信息
-gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间
-gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但是会额外输出导致一次GC产生的原因
-gcnew 监视新生代GC的状态
-gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间
-gcold 监视老年代GC状况
-gcoldcapacity 监视内容与-gcnew基本相同,输出主要关注使用的最大和最小空间
-gcpermcapacity 输出永久代使用到的最大和最小空间
-compiler 输出JIT编辑器编译过的方法、耗时等信息
-printcompilation输出已经被JIT编译的方法


C:\Users\Administrator>jstat -gcutil 4100 1000 100
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 3.00 23.77 54.91 7 0.131 3 0.247 0.378
0.00 0.00 3.00 23.77 54.91 7 0.131 3 0.247 0.378
0.00 0.00 3.00 23.77 54.91 7 0.131 3 0.247 0.378
0.00 0.00 3.00 23.77 54.91 7 0.131 3 0.247 0.378
新生代Eden区(E,表示Eden)使用了3.0%的空间,两个Survivor区(S0、S1,表示Survivor0、Survivor1)里面都空的,老年代(o,表示Old)和永久代(P,表示Permanent)使用了54.91的空间。
程序允许以来共发生Minor GC(YGC,表示Young GC)16次,总耗时0.131秒,发生Full GC(FGC,表示Full GC)3次,Full GC总耗时(FGCT,表示Full GC Time)为0.247妙,所有GC总耗时(GCT,表示GC Time)为0.378妙。


S0 — Heap上的 Survivor space 0 区已使用空间的百分比
S1 — Heap上的 Survivor space 1 区已使用空间的百分比
E — Heap上的 Eden space 区已使用空间的百分比,新生代Eden区
O — Heap上的 Old space 区已使用空间的百分比,老年代
P — Perm space 区已使用空间的百分比,永久代
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)






jinfo:Java配置信息工具
jinfo是作用是实时查看和调整虚拟机的各项参数。使用jps -v参数可以查看虚拟机启动时显示执行的参数列表。
C:\Users\Administrator>jinfo -flag PretenureSizeThreshold 7832
-XX:PretenureSizeThreshold=0






jmap:Java内存映像工具
jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。
-dump 生成Java堆转储快照。
-finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法的对象。
-heap 显示Java堆详细信息。
-histo 显示堆中对象统计信息。
-permstat 以ClassLoader为统计口径显示永久代内存状态。
-F 当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。


C:\Users\Administrator>jmap -histo 7832 >D:\\j.txt






jhat:虚拟机堆转储快照分析工具
与jmap搭配使用,来分析jmap生成的堆 转储快照。








jstack:Java堆栈跟踪工具
jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或javacore文件)。
-f 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示锁的附件信息
-m 如果调用到本地方法的话,可以显示C/C++的堆栈
分享到:
评论

相关推荐

    jdk命令行工具.doc

    jvm命令行工具,java性能优化,jdk命令工具, jcmd命令、jps命令、jmap命令、jstack命令、jinfo命令、jstat命令

    JVM调优前戏之JDK命令行工具.docx

    JVM调优前戏之JDK命令行工具.docx

    visualvm 216版本

    VisualVM 是一个集成多个 JDK 命令行工具的可视化工具。可以作为 Java 应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制 Java 应用...

    visualVM_131

    VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jstat, JConsole, jstack, jmap 和 jinfo,这些工具与JDK的标准版本是一致的。 可以...

    JavaVisualVM可视化多线程监控分析工具v1.3.8官方安装版

    Java VisualVM是一个多线程的监控分析工具,VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。功能包括内存分析、快照功能、转储功能...

    Android 命令行工具commandlinetools-mac-7583922_latest.zip

    如果您不需要 Android Studio,可以下载 Android 命令行工具。可以使用包含sdkmanager的下载其他 SDK 包。该工具包含在 Android Studio 中。Android 命令行工具适用于macOS系统。

    JAVA JVM内存监控工具总结

    VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。 jinfo:...

    Android 命令行工具(commandlinetools-linux-8092744_latest.zip)

    Android 命令行工具(commandlinetools-linux-8092744_latest.zip)适用于Linux系统。 如果不需要 Android Studio,可以下载 Android 命令行工具。可以使用包含sdkmanager的下载其他 SDK 包。该工具包含在 Android ...

    VisualGC(监控程序性能调优)

    VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。

    Visual GC(监控垃圾回收器)

    VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。

    Visual_131_32656 (1).exe

    isualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jstat, JConsole, jstack, jmap 和 jinfo,这些工具与JDK的标准版本是一致的。 可以...

    visualvm_14.zip

    性能分析神器VisualVM VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。

    内存检测工具-visualvm-216

    VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,提供强大的分析能力,对 Java 应用程序做性能分析和调优。 在高版本JDK(大于1.8或后期更新的1.8版本)中已经不会再自动集成 VisualVM,需要下载独立...

    VisualVM程序性能分析工具源码

    VisualVM程序性能分析工具是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制...

    visualvm_142

    VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU...

    Java程序性能分析工具 VisualVM_202.zip

    VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制Java应用程序横跨...

    windows快速切换jdk版本工具

    windows快速切换jdk版本工具,直接通过命令行即可修改

    VisualVM入门

    VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制Java应用程序横跨...

    最新版jdk jdk-21-linux-x64-bin.deb

    与先前的JDK版本相比,jdk-21...一旦安装完成,用户可以通过命令行工具或集成开发环境(IDE)开始开发和调试Java应用。此外,jdk-21还支持最新的Java特性和标准,确保开发者可以利用最新的技术和功能来构建创新的应用。

    jdk 一键配置环境工具

    注意在Windows下,为了避免在使用命令行的时候出现问题,一般不要选择安装在C:\Program Files\jdk目录下,可以选择文件夹名没有空格的目录来安装,比如我一般安装在C:\Java目录下面。 1. 设置JAVA_HOME,指向jdk的...

Global site tag (gtag.js) - Google Analytics