最简单实用的profiler(适用于紧急排除线上故障)

本文介绍了一款基于btrace的简易Profiler工具,该工具可以快速获取指定类中所有公共方法的执行时间,帮助开发者在线上环境中定位性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       由于IDC的隔离性,在线上机部署YJP,JProfiler等GUI工具很是麻烦,尤其是排除线上故障的时候,一个简单实用的工或许能快速定位到问题,减少停机时间.

       基于btrace写了一个最简单的profiler: 快速profile某个类的所有public方法的执行时间并输出.

 

  安装:

      首先安装btrace, 设置BTRACE_HOME环境变量, 下载源代码: https://github.com/haitaoyao/perf-tools, 安装perf-tools

  使用:

      比如我们想知道hadoop jobtracker 的调用情况,首先生profile 脚本:

 

      生成的脚本以${传入的clas name的simple name}_Script.java 命名, 所以对应JobTracker生成的脚本为JobTracker_Script.java

使用btrace运行脚本:

 

 

      输出内容类似 1308473766502 org.apache.hadoop.mapred.JobTracker#getTaskTracker:(ms) 1 , 其中1308473766502 为时间戳(自1970年时间), org.apache.hadoop.mapred.JobTracke为类名, getTaskTracker为被调用方法名称, 1为方法耗时,单位: 毫秒.

 

通过输的日志, 简单归并整理,就可以知道当前系统对某个类的调用频率,耗时

 

   原理:

     原理其实很简单, 就是实用asm对传入的类进行解析, 找出所有的public方法并生成脚本. 

 

    希望对大家有用!

 

-- EOF --

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值