VJToolsJava 常用工具包
VJTools,是主力于Java的唯品會,關于Java的一些小家底:《唯品會Java開發(fā)手冊》,核心基礎類庫VJKit ,問題排查工具VJMap 和 VJTop 三部分。
1.《唯品會Java開發(fā)手冊》
《阿里巴巴Java開發(fā)手冊》,是首個對外公布的企業(yè)級Java開發(fā)手冊, 意義重大。
我們結合唯品會的內部經(jīng)驗,參考《Clean Code》、《Effective Java》等重磅資料進行了大幅定制,感謝阿里授權修改。《唯品會Java開發(fā)手冊》在線閱讀版 。
2. 核心類庫VJKit
綜合眾多開源類庫的精華而成, 讓開發(fā)人員避免底層代碼的重復開發(fā),默認就擁有最佳實踐,尤其在性能的方面。
針對“文本,數(shù)字,日期,文件,集合,并發(fā),反射”這些開發(fā)人員的日常,VJKit做了兩件事情:
一是對Guava與Common Lang中最常用API的提煉歸類,避免了大家直面茫茫多的API。
二是對各門各派的精華的借鑒移植:比如一些大項目的附送基礎庫如Netty,ElasticSearch,一些專業(yè)的基礎庫如Jodd,一些大廠的基礎庫如Facebook和Twitter。
3. 工具集-VJMap
分代版的jmap(新生代,存活區(qū),老生代),是排查內存緩慢泄露,老生代增長過快原因的利器。
jmap -histo PID 打印的是整個Heap的對象統(tǒng)計信息,而為了定位上面的問題,我們需要專門查看OldGen對象,和Survivor區(qū)老齡剩男的工具。
致敬R大,思路來源于TBJMap,翻新后支持JDK8,支持Survivor區(qū)老齡對象過濾,以及大天秤對輸出結果不要看歪脖子的執(zhí)著。
4. 工具集-VJTop
若你習慣以Top觀察 “OS指標及繁忙的進程”,也推薦以VJTop觀看 “JVM指標及CPU最繁忙,占用內存最多的線程”。
常用場景:
-
性能問題快速定位,用vjotp顯示出CPU或內存繁忙線程,再實時交互翻查該線程的statk trace。
-
壓測場景,使用vjtop 實時反饋JVM進程狀態(tài),類似于使用dstast對操作系統(tǒng)級別的監(jiān)控。
-
生產(chǎn)環(huán)境,當應用出現(xiàn)問題時,用vjtop快速了解進程的狀態(tài)。可與監(jiān)控系統(tǒng)聯(lián)合,發(fā)現(xiàn)指標如CPU, 超時數(shù)超閾值時,用鉤子腳本調vjtop來紀錄事發(fā)地的狀況。
