java-tracer 是一个 Java 源码阅读工具,利用它可以把我们程序运行过程栈录制下来,并实时绘制成时序图,使用简单方便。
java-tracer 主要提供[线程]方法调用栈时序图录制/展现功能,在程序运行的时候,录制调用栈,然后借助浏览器一层一层查看调用时序图,结合原i码,能更容易理解框架运行原理。
使用方法是以 javaagent 的方法带入程序中,使用模式有两种,第 1 种是 函数模式 ,即录制某个方法,第 2 种是 线程模式 ,即录制所有线程。
函数模式
启动的时候,增加 agent 参数,例如:java -javaagent:xxx/tracer-agent/target/java-tracer.jar xxxMainClass
启动的时候,console 会输出: pages can be found in http://127.0.0.1:18902
打开链接,可以设置需要录制的方法的类名及方法名。
设置完之后,当方法被再次调用的时候,在主页面下面的 result list 模块就会有每次方法的录制记录,点击链接即可看到如上 demo 那样的时序图了。
线程模式
线程模式跟函数模式一样,只是需要增加一个 agent 参数 mode=1,例如:java -javaagent:xxx/tracer- agent/target/java-tracer.jar=mode=1 xxxMainClass
同样,程序启动之后,打开页面 http://127.0.0.1:18902 即可看到线程运行情况。
可以点击 result list 里面的 service 的链接,就可以查看到[线程]栈时序图。
在时序图中,可能通过调节显示栈深度,或者进入方法里面查看栈调用情况。