性能测试工具 TProfile代码简析

发表于:2013-04-10来源:酷勤网作者:不详点击数: 标签:性能测试工具
对TProfile (https://github.com/taobao/TProfiler)产生了兴趣,于是就下下来研究了一下: 非常简单小巧,代码质量也很高,最多20个class。其实现的核心原理就是利用javaAgent,在premain函数中使用java.lang.instrument.ClassFileTransformer,对允许

  对TProfile (https://github.com/taobao/TProfiler)产生了兴趣,于是就下下来研究了一下:

  非常简单小巧,代码质量也很高,最多20个class。其实现的核心原理就是利用javaAgent,在premain函数中使用java.lang.instrument.ClassFileTransformer,对允许采样的类生成org.objectweb.asm.ClassAdapter

  再利用org.objectweb.asm.MethodAdapter的visitXXX 系列(对应功能可到这里查:http://t.cn/SqTMQM),注入采样代码,如下

  注入方法开始时的采样代码

  注入方法结束时的采样代码

  visitInsn指的是执行单条指令时需要执行的勾子。

原文转自:http://www.kuqin.com/testing/20120921/331194.html