Java常用分析工具Jps、Jstat、Jinfo、Jstack以及Jconsole的简单介绍和使用
JVM參數(shù)查看 java -XX:+PrintFlagsFinal和java -XX:+PrintCommandLineFlags
1. JVM Process Status(Jps)
可以列出正在運行的虛擬機進程,并得到進程的本地虛擬機唯一ID(Local Virtual Machine Identifier, LVMID),可被其它Java工具使用。
1.1 未啟用其它Java程序
1.2 啟動IDEA,但未運行Java程序
1.3 在IDEA中運行TestGeneric類程序
2. JVM Statistics Monitoring Tool(Jstat)
用于監(jiān)視虛擬機各種狀態(tài)信息,包括類裝載、垃圾回收等數(shù)據(jù)。可通過jstat -options查看有哪些選項信息輸出。
2.1 類裝載信息
2.2 垃圾回收相關信息(以KB為單位)
S0表示第一個Survivor區(qū),S1表示第二個;S0C表示第一個Survivor區(qū)的容量,S0U表示第一個Survivor區(qū)的使用量。EC表示Eden區(qū)的容量,EU表示Eden區(qū)的使用量。OC表示老年代的容量,OU表示老年代區(qū)使用量。YGC表示新生代回收次數(shù),YGCT表示新生代回收時間;FGC表示老年代回收次數(shù),FGCT表示老年代回收時間。GCT是總的垃圾回收時間。CGC是什么垃圾回收?
3. Configuration Info for Java(Jinfo)
查看和調整虛擬機參數(shù),只能查看和修改一部分可改的虛擬機參數(shù),操作選項如下。
3.1 查看虛擬機參數(shù)
3.2 查看特定虛擬機參數(shù)
3.3 修改特定虛擬機參數(shù)
4. Stack Trace for Java(Jstack)
根據(jù)線程的堆棧信息分析線程異常情況。
5. 總結
Jps:虛擬機進程狀態(tài)工具,查看Java程序的信息,主要是得到進程ID。
Jstat:虛擬機數(shù)據(jù)監(jiān)視工具,查看Java程序的類裝載和垃圾回收等數(shù)據(jù),內(nèi)存監(jiān)控。
Jinfo:虛擬機配置信息工具,查看和修改部分可改的虛擬機參數(shù)。
Jstack:Java堆棧跟蹤工具,根據(jù)線程堆棧信息分析線程狀況。主要用于線程監(jiān)控。
JConsole:上述工具的結合體,并且有圖像界面。
6. JVM調優(yōu)
6.1 棧大小的參數(shù)是 -Xss,默認是1M
6.2 堆初始大小的參數(shù)是 -Xms,默認是1/64內(nèi)存大小;堆內(nèi)存最大的參數(shù)是 -Xmx,默認是1/4內(nèi)存大小。
6.3 -XX:NewRatio是初始老年代和新生代的比值,默認是2。
6.4 虛擬機調優(yōu):1.代碼層面:①盡量少用臨時對象;②可以使用基本類型就不要使用包裝類;③對象不使用時,顯式地設為null。2.JVM參數(shù)層面:①合適的堆內(nèi)存初始值;②合適的堆內(nèi)存大小;③老年代對象的判定;④分配擔保。
總結
以上是生活随笔為你收集整理的Java常用分析工具Jps、Jstat、Jinfo、Jstack以及Jconsole的简单介绍和使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分析对象内部结构,并详解synchron
- 下一篇: java美元兑换,(Java实现) 美元