首页 > 其他 > 详细

JVM调优(三)——基于Btrace的监控调试

时间:2019-10-17 19:34:34      阅读:157      评论:0      收藏:0      [点我收藏+]

JVM调优(三)——基于Btrace的监控调试

简介

  • Btrace可以动态地向目标应用程序的字节码注入追踪代码
  • 用到的技术: JavaComplierApi、JVMTI、Agent、Instrumentation+ASM

Btrace安装入门

  • 通过github搜索进行下载

  • 新建环境变量BTRACE_HOME

  • 添加Path:%BTRACE_HOME%\bin

两种运行脚本的方式

  • 在JVisualVM中添加Btrace插件,添加classpath
  • 使用命令行btracce <pid>

Btrace使用详解

### 拦截方法

  • 普通方法

    @OnMethod(clazz="",method="")
  • 构造函数

    @OnMethod(clazz="",method="<init>")
  • 拦截同名函数,用参数区分

拦截时机

  • Kind.ENTRY:入口,默认值
  • Kind.RETURN:返回
  • Kind.THROW:异常
  • Kind.Line:行

拦截this,参数,返回值

  • this:

    @Self
  • 入参:可以用AnyType,也可以用真实类型,同名的用真实的

  • 返回:@Return

    • 简单类型:直接获取
    • 复杂类型:反射,类名+属性名

其他

  • 打印行号:Kind.LINE
  • 打印堆栈:Thread.jstack()
  • 打印环境变量

使用注意事项

  • 默认只能本地运行
  • 生产环境可以使用,但是被修改的字节码不会被还原

JVM调优(三)——基于Btrace的监控调试

原文:https://www.cnblogs.com/xujie09/p/11694262.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!