BTrace
在 Java 应用性能分析与故障诊断领域,工具生态丰富多样。从动态追踪工具如 Btrace、Arthas 的 retransform 能力,到 JDB 调试,再到 JDK 内置的 VisualVM、JFR,以及 JProfiler、MAT 等性能分析工具,还有分布式监控工具、火焰图等,它们共同助力开发者高效定位问题、优化系统性能。
BTrace 的 wiki:
https://github.com/btraceio/btrace/wiki
例子
测试代码

btrace 程序

启动 btrace

也可以用 arthas 实现 将 OrderProcessor 内容改一下:

重新编译一下,然后 arthas retransform 加载:

可以用 jad 反编译检查一下
再看原先的程序,打印的内容变了

官网的一些例子:
· https://github.com/btraceio/btrace/tree/master/btrace-dist/src/main/resources/samples

对比一下
· arthas 使用了:Instrumentation.retransformClasses(),会替换整个类,风险高
· btrace 使用了:java.lang.instrument,只是在关键函数中注入了额外信息,风险低
----------------------------------------
jdb 的一个例子
编译的时候需要加 -g

使用 jdb 跟踪

进入之后,输入 help,会列出所有调试命令
打断点做调试

其他一些分析工具
分布式监控
Prometheus
Grafana
ELK Stack
Zipkin
Jaeger
Arthas
monitor、watch、trace 等很好用的工具
还有 jad、dashborad、getstatic、ognl
profiler 记录火焰图
jfr,jfr 记录
JDK 内置工具
jstack、jinfo、jps、jmap
jstat、jconsole、jcmd、jhat
jdb
Mission Control
监控工具
visualvm
JFR
YourKit
JProfiler
Async Profiler
内存 dump 分析
Elicpse MAT
NetBeans Profiler
APM 工具
New Relic
AppDynamics
Datadog APM
其他
strace
Perf (Linux) + async-profiler
参考
btrace github
btrace-learning
通过 jdb 命令连接远程调试的方法
btrace 使用入门
评论