java-tracerJava 源碼閱讀工具
java-tracer 是一個 Java 源碼閱讀工具,利用它可以把我們程序運(yùn)行過程棧錄制下來,并實(shí)時繪制成時序圖,使用簡單方便。
工具效果
java-tracer 主要提供[線程]方法調(diào)用棧時序圖錄制/展現(xiàn)功能,在程序運(yùn)行的時候,錄制調(diào)用棧,然后借助瀏覽器一層一層查看調(diào)用時序圖,結(jié)合原i碼,能更容易理解框架運(yùn)行原理。
使用方法
使用方法是以 javaagent 的方法帶入程序中,使用模式有兩種,第 1 種是函數(shù)模式,即錄制某個方法,第 2 種是線程模式,即錄制所有線程。
函數(shù)模式
啟動的時候,增加 agent 參數(shù),例如:java -javaagent:xxx/tracer-agent/target/java-tracer.jar xxxMainClass
啟動的時候,console 會輸出: pages can be found in http://127.0.0.1:18902
打開鏈接,可以設(shè)置需要錄制的方法的類名及方法名。
設(shè)置完之后,當(dāng)方法被再次調(diào)用的時候,在主頁面下面的 result list 模塊就會有每次方法的錄制記錄,點(diǎn)擊鏈接即可看到如上 demo 那樣的時序圖了。
線程模式
線程模式跟函數(shù)模式一樣,只是需要增加一個 agent 參數(shù) mode=1,例如:java -javaagent:xxx/tracer-agent/target/java-tracer.jar=mode=1 xxxMainClass
同樣,程序啟動之后,打開頁面 http://127.0.0.1:18902 即可看到線程運(yùn)行情況。
可以點(diǎn)擊 result list 里面的 service 的鏈接,就可以查看到[線程]棧時序圖。
在時序圖中,可能通過調(diào)節(jié)顯示棧深度,或者進(jìn)入方法里面查看棧調(diào)用情況。
