调优-Btrace-Java动态、安全追踪(监控)工具
3、Btrace-Java动态、安全追踪(监控)工具
3.1 Btrace简介
>
BTrace可动态地向目标应用程序的字节码注入追踪代码
JavaCompilerApi、JVMTI、Agent、Introduction+ASM
注意:
- 默认只能在本地运行
- 生产环境下可以使用,但是被修改的字节码不会被还原
3.2 Btrace安装及2种运行方式
https://github.com/btraceio/btrace
直接下载已编译版本
https://github.com/btraceio/btrace/releases
https://github.com/btraceio/btrace/releases/download/v1.3.11.1/btrace-bin-1.3.11.1.zip
添加环境变量:
1. 新疆环境变量 BTRACE_HOME ,添加Path:%BTRACE_HOME%\bin;
测试可能不支持jdk8
2.1 在JVisualVM中添加Btrace插件,添加classpath 2.2 使用命令行btrace <pid> <trace_script>
具题代码 com/jiangjiesheng/javaOptimizationAndDebug/btrace
被测试的入口
com.jiangjiesheng.javaOptimizationAndDebug.btrace.BtraceController
BTrace可以拦截构造函数、同名函数、返回值、异常(被catch的异常也能拦截)、行号、复杂参数、混进变量、正则匹配拦截
PrintArgComplex
PrintArgSimple
PrintConstructor
PrintJinfo
PrintLine
PrintOnThrow
PrintRegex
PrintReturn
PrintSame
2.3 基本使用
jps #查看java进程
3172 RemoteMavenServer
4008 Jps
8140
btrace 3172 PrintArgComplex.java
或者首先通过《1.2-详细笔记-基于JVisualVM的可视化监控.md》在jvisualvm安装BTrace Workbench插件,然后选中一个java进程,右击,trace application ,添加类似上述一样的脚本。
注意:如果使用到非jdk自带的类,需要指定classpath,类似User.class
正文到此结束