tprofiler是taobao开源的也是国内目前为止唯一一款Profiler工具,主要用于java应用的性能分析,不仅能够抓取Java方法的调用时间,还能抓取MySQL的执行时间, 是一款不错的开源性能分析工具。以下对tprofiler源码中的各包进行分析,帮助大家对tprofiler源码有个初步的认识。
主要的类ProfilerLogAnalysis,该方面的分析以main()方式启动,适用方式如下:
ProfilerLogAnalysis <tprofiler.log path> <tmethod.log path> <topmethod.log path> <topobject.log path>该类分析了以下文件:(以下文件名在profile.properties定义,完整路径为${user.home}/logs/) tprofiler.log: 性能分析数据,由DataDumpThread输出 tmethod.log: 方法相关数据,由TimeControlThread或InnerSocketThread线程调用MethodCache.flushMethodData()输出 topmethod.log: top方法相关数据,由ProfilerLogAnalysis输出 topobjects.log: top对象相关数据,由ProfilerLogAnalysis输出 mysqlProfiler.log: 由DataDumpThread输出
这个是字节码注入的比较核心的包,也是唯一稍微难度的地方
ProfClassAdapter : asm类适配器,对类进行字节码注入ProfMethodAdapter: asm方法适配器,对方法进行字节码注入ProfTransformer:用于注入Profiler的字节码,可注入字节码的类分为两类,普通类和Mysql相关类空行:2357 注释行:1420 代码行:468
新闻热点
疑难解答