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