Java Spy-代碼跟蹤神器


Java方法跟蹤工具,Java Debug工具,Java方法耗時統計工具,方便你了解各種開源框架的源碼

 

大家最閱讀源碼常用的手段應該是借助開發工具debug?又或者是把log4j的基本改成debug?今天要和大家分享一個幫助你更好地閱讀源碼神器,瞬間讓你知道某個方法調用的所有方法棧(如果你想記錄SpringBoot2.0的啟動過程所有執行到的方法,必須調整JVM參數,不然隨時OOM了),非常詳細地記錄了所有被調用到的方法及其耗時。下面具體了解一下:

 

一:Java Spy

    Java Spy是一個獨立的Jar包,以-javaagent的方式運行,會跟蹤和記錄設定方法的所有方法的調用過程及其耗時。

 

二:Spy Demo

    Spy Demo是基於SpringBoot2.0的項目,集成了springweb和mybatis。基於這個項目我們來看看SpringBoot2.0的啟動過程以及一個Http Call的執行過程。現在看看如何配置並運行Spy Demo:

(1) 配置Idea和 Java程序的JVM參數

 

 -javaagent:C:\Users\Jo\IdeaProjects\java-spy\java-spy.jar -Xms4096m -Xmx4096m

(2)配置需要忽略的包名

 

 SPY_IGNORE_FILE是固定的,spy_ignores.txt的路徑可以隨意改,下面看看spy_ignores.txt中忽略了哪些package:

 

 

com.fasterxml

org.aspectj

io.opentracing

ch.qos.logback

org.hibernate

org.jboss

org.springframework.util

org.springframework.jmx

org.springframework.format

org.springframework.boot.logging

org.springframework.expression

org.springframework.asm

org.springframework.cglib

org.apache

org.slf4j

com.sun

sun

java

在跟蹤SpringBoot的啟動過程的時候,我忽略了以上不太想關心的package,一般情況,jdk相關的包,log日志相關的包,json包忽略掉就好了。

三:Spy Web

啟動Spy Web之前需要執行spy.sql,數據存儲路徑和數據庫的連接信息: 

 

 到此,需要配置的信息已經完成。接下來就可以運行Spy Demo和Spy Web了。啟動完成后,訪問:http://127.0.0.1:16688/

 

 點擊sequence可以查看SpringBoot啟動的時候方法調用詳細信息(由於信息量大,這個頁面打開需要15min+):

 

 上圖中,藍色方法名表示還可以繼續點擊查看其方法調用細節。

推薦一款項目管理工具:http://www.itproject-manager.com/

 

更多信息關注公眾號:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM