高愛玲
摘 要:近年來,Java得到迅猛發展,它不僅結構嚴謹面向對象而且還有許多不可替代的優點:不受硬件的束縛;內存管理和訪問機制更安全;內存泄露和指針越界問題大為減少。隨著運行時間的增加就使得Java獲得了更高的性能,本文針對這個問題簡單介紹幾個容易忽視的JAVA小命令,希望能給各位頂點幫助。
關鍵詞:Java;命令;sun
作為Java的使用者,我們都知道每逢JDK更新版本之時,bin目錄下命令行工具的數量和功能總會不知不覺地增加和增強。在本文中,筆者將介紹這些工具的其中一部分,主要包括用于監視虛擬機和故障處理的工具。這些故障處理工具被Sun公司作為“禮物”附贈給JDK的使用者,雖然是贈送,但事實上這些工具都非常穩定而且功能強大,能在處理應用程序性能問題、定位故障時發揮很大的作用。
說起JDK的工具,用過的程序員可能會注意到這些工具的程序體積都異常小巧,幾乎所有工具的體積基本上都穩定在27KB左右。假如您使用的是Linux版本的JDK,還會發現這些工具中很多甚至就是由Shell腳本直接寫成的,可以用vim直接打開它們。JDK開發團隊選擇采用Java代碼來實現這些監控工具是有特別用意的:當應用程序部署到生產環境后,無論是直接接觸物理服務器還是遠程Telnet到服務器上都可能會受到限制。
1 第一個小工具jps:查詢虛擬機進程
JDK的很多小工具的名字像UNIX的命令,它的功能也和UNIX命令很相似:把正在運行的虛擬機進程給我們列舉出來,并把Main Class,main()的功能顯示出來。這個小工具功能比較單一,但是它的出現頻率還是非常高的。在使用Windows的任務管理器也可以查詢進程的LVMID,多個虛擬機進程如果一個 時間段內啟動了,很難對進程名稱定位時,就非用jps命令不可了。
這個結果說明的信息就是:Eden區(E,表示Eden)使用了6.2%的空間,兩個Survivor區里面沒有內容,另外兩個區則分別使用了41.42%和47.20%的空間。程序運行以來共發生MinorGC(YGC,表示Young GC)16次,總耗時0.105秒,發生Full GC(FGC,表示Full GC)3次,Full GC總耗時(FGCT,表示Full GC Time)為0.472秒,所有GC總耗時(GCT,表示GC Time)為0.577秒。使用jstat工具在純文本狀態下監視虛擬機狀態的變化,確實不如后面將會提到的VisualVM等可視化的監視工具直接以圖表展現那樣直觀。但許多服務器管理員都習慣了在文本控制臺中工作,直接在控制臺中使用jstat命令依然是一種常用的監控方式。
3 第三個小工具jinfo:Java用來進行信息設置
[參考文獻]
[1]周志明.《深入理解JAVA虛擬機》.
[2]汪靜.《JAVA學習指南》.