javOSize:新一代java分析工具
介紹
最近看到這么個工具-javOSize .官網地址,去官網看了下.發現介紹很有意思,叫做 the missing sugar for your Java cup.(你的咖啡杯中缺少的那顆糖).于是感受一下這顆糖到底甜不甜
安裝
安裝非常簡單,從這里下載,其實完成之后就是一個jar包.非常簡單,不用配置啥的.
簡單使用
使用方法就是從先附加到一個java進程上,在linux,上我直接執行
ps aux|grep java
就能看到了.不廢話,得到java進程的pid之后,運行java -jar javosize-1.0.9.jar pidpid就是pid的號了. 然后會看到如下圖的界面啟動頁面,表示已經附加成功了.先看看都有啥.執行ls.看到有這么幾個命令.我比較單純,剛開始以為是可執行文件.結果丟人了.看了下官方文檔,才知道是目錄.進入對應的目錄.然后執行ls就能看到對應的信息了.ls簡直不能再萬能..改目錄支持的所有命令通過在對應的目錄執行help來查看.個人嘗試覺得好的功能有.
所有功能目錄
- 動態修改類
進入CLASSES目錄,然后通過執行
ls|grep xxx
來找到需要修改的類,然后通過vi 就可以直接編輯.編輯完成后,直接保存就會動態替換.文檔里說是支持jdk1.7以上,對1.6的支持估計是不行的.沒有測試.
修改類demo
- 無須重啟開啟jmx
直接掛載之后,執行cd REPOSITORY然后執行就好了.
exec START_JMX_SERVER 6666 - 攔截任意代碼
可以動態添加類似Spring中的aop方法.用于打印一些調用日志,排查線上問題.進入INTERCEPTOR目錄.然后通過如下的方法給某個類的某個方法添加攔截器.
create TickServlet begin mypackage.Hello doGet System.out.println("Servlet invoked"); - 檢測內存泄漏
進入 REPOSITORY 目錄,執行exec TOP_FAT_STATIC_VARIABLES 5 com.apache.*會取出某個包下面占用大小最大的5個類.會很方便找到. -
自動檢測性能問題
PROBLEMS 目錄專業解決這種問題.進入目錄后.執行ls命令.會看到這樣的場景- Concurrency
Deadlocked: false - Memory
High GC (>2%): false
</ul>
</blockquote>
-
無需重啟開啟GC 日志
</li> </ol> 來自:http://leaver.me/2015/07/04/javOSize-%E6%96%B0%E4%B8%80%E4%BB%A3java%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7/
和開啟jmx一樣,進入JMX目錄后,執行
exec java.lang:type=Memory.setVerbose(true);
就開啟了.
這里目前只檢測了死鎖和頻繁GC.已經很有用了.至于效果還有待觀察.
</li> - Concurrency
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!