Java常用分析工具Jps、Jstat、Jinfo、Jstack以及Jconsole的简单介绍和使用
JVM參數查看 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)
用于監視虛擬機各種狀態信息,包括類裝載、垃圾回收等數據。可通過jstat -options查看有哪些選項信息輸出。
2.1 類裝載信息
2.2 垃圾回收相關信息(以KB為單位)
S0表示第一個Survivor區,S1表示第二個;S0C表示第一個Survivor區的容量,S0U表示第一個Survivor區的使用量。EC表示Eden區的容量,EU表示Eden區的使用量。OC表示老年代的容量,OU表示老年代區使用量。YGC表示新生代回收次數,YGCT表示新生代回收時間;FGC表示老年代回收次數,FGCT表示老年代回收時間。GCT是總的垃圾回收時間。CGC是什么垃圾回收?
3. Configuration Info for Java(Jinfo)
查看和調整虛擬機參數,只能查看和修改一部分可改的虛擬機參數,操作選項如下。
3.1 查看虛擬機參數
3.2 查看特定虛擬機參數
3.3 修改特定虛擬機參數
4. Stack Trace for Java(Jstack)
根據線程的堆棧信息分析線程異常情況。
5. 總結
Jps:虛擬機進程狀態工具,查看Java程序的信息,主要是得到進程ID。
Jstat:虛擬機數據監視工具,查看Java程序的類裝載和垃圾回收等數據,內存監控。
Jinfo:虛擬機配置信息工具,查看和修改部分可改的虛擬機參數。
Jstack:Java堆棧跟蹤工具,根據線程堆棧信息分析線程狀況。主要用于線程監控。
JConsole:上述工具的結合體,并且有圖像界面。
6. JVM調優
6.1 棧大小的參數是 -Xss,默認是1M
6.2 堆初始大小的參數是 -Xms,默認是1/64內存大小;堆內存最大的參數是 -Xmx,默認是1/4內存大小。
6.3 -XX:NewRatio是初始老年代和新生代的比值,默認是2。
6.4 虛擬機調優:1.代碼層面:①盡量少用臨時對象;②可以使用基本類型就不要使用包裝類;③對象不使用時,顯式地設為null。2.JVM參數層面:①合適的堆內存初始值;②合適的堆內存大小;③老年代對象的判定;④分配擔保。
總結
以上是生活随笔為你收集整理的Java常用分析工具Jps、Jstat、Jinfo、Jstack以及Jconsole的简单介绍和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分析对象内部结构,并详解synchron
- 下一篇: TCP/IP面试常问合集,JavaWeb