tprofiler是taobao開源的也是國內(nèi)目前為止唯一一款Profiler工具,主要用于java應用的性能分析,不僅能夠抓取Java方法的調(diào)用時間,還能抓取MySQL的執(zhí)行時間, 是一款不錯的開源性能分析工具。以下對tprofiler源碼中的各包進行分析,幫助大家對tprofiler源碼有個初步的認識。
主要的類ProfilerLogAnalysis,該方面的分析以main()方式啟動,適用方式如下:
ProfilerLogAnalysis <tprofiler.log path> <tmethod.log path> <topmethod.log path> <topobject.log path>該類分析了以下文件:(以下文件名在profile.properties定義,完整路徑為${user.home}/logs/) tprofiler.log: 性能分析數(shù)據(jù),由DataDumpThread輸出 tmethod.log: 方法相關數(shù)據(jù),由TimeControlThread或InnerSocketThread線程調(diào)用MethodCache.flushMethodData()輸出 topmethod.log: top方法相關數(shù)據(jù),由ProfilerLogAnalysis輸出 topobjects.log: top對象相關數(shù)據(jù),由ProfilerLogAnalysis輸出 mysqlProfiler.log: 由DataDumpThread輸出
這個是字節(jié)碼注入的比較核心的包,也是唯一稍微難度的地方
ProfClassAdapter : asm類適配器,對類進行字節(jié)碼注入ProfMethodAdapter: asm方法適配器,對方法進行字節(jié)碼注入ProfTransformer:用于注入Profiler的字節(jié)碼,可注入字節(jié)碼的類分為兩類,普通類和Mysql相關類空行:2357 注釋行:1420 代碼行:468
|
新聞熱點
疑難解答