国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

tprofiler源代碼分析

2019-11-11 06:42:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

tPRofiler源代碼分析

tprofiler是taobao開(kāi)源的也是國(guó)內(nèi)目前為止唯一一款Profiler工具,主要用于java應(yīng)用的性能分析,不僅能夠抓取Java方法的調(diào)用時(shí)間,還能抓取MySQL的執(zhí)行時(shí)間, 是一款不錯(cuò)的開(kāi)源性能分析工具。以下對(duì)tprofiler源碼中的各包進(jìn)行分析,幫助大家對(duì)tprofiler源碼有個(gè)初步的認(rèn)識(shí)。

1. 最外層

Main TProfiler入口,定義了premain方法,使用instrument的agent類(lèi)必需的方法Profiler:用于收集運(yùn)行時(shí)應(yīng)用數(shù)據(jù),主要收集方法開(kāi)始執(zhí)行時(shí)的時(shí)間,方法結(jié)束時(shí)的的時(shí)間,用于方法耗時(shí)統(tǒng)計(jì),這里有個(gè)硬編碼,只統(tǒng)計(jì)耗時(shí)超過(guò)10ms的方法Manager:管理類(lèi),內(nèi)部啟動(dòng)四個(gè)線程,分別用于:將分析結(jié)果寫(xiě)入log文件,Socket開(kāi)關(guān),時(shí)間控制和調(diào)用棧取樣

2. analysis: 離線分析profiler的結(jié)果

主要的類(lèi)ProfilerLogAnalysis,該方面的分析以main()方式啟動(dòng),適用方式如下:

ProfilerLogAnalysis <tprofiler.log path> <tmethod.log path> <topmethod.log path> <topobject.log path>

該類(lèi)分析了以下文件:(以下文件名在profile.properties定義,完整路徑為${user.home}/logs/) tprofiler.log: 性能分析數(shù)據(jù),由DataDumpThread輸出 tmethod.log: 方法相關(guān)數(shù)據(jù),由TimeControlThread或InnerSocketThread線程調(diào)用MethodCache.flushMethodData()輸出 topmethod.log: top方法相關(guān)數(shù)據(jù),由ProfilerLogAnalysis輸出 topobjects.log: top對(duì)象相關(guān)數(shù)據(jù),由ProfilerLogAnalysis輸出 mysqlProfiler.log: 由DataDumpThread輸出

3. instrument包:修改字節(jié)碼

這個(gè)是字節(jié)碼注入的比較核心的包,也是唯一稍微難度的地方

ProfClassAdapter : asm類(lèi)適配器,對(duì)類(lèi)進(jìn)行字節(jié)碼注入ProfMethodAdapter: asm方法適配器,對(duì)方法進(jìn)行字節(jié)碼注入ProfTransformer:用于注入Profiler的字節(jié)碼,可注入字節(jié)碼的類(lèi)分為兩類(lèi),普通類(lèi)和Mysql相關(guān)類(lèi)

4. config包:配置

ProfFilter: 包過(guò)濾器,過(guò)濾注入或者不注入的PackageConfigureProperties:用于加載配置文件的properties類(lèi)ProfConfig:用于讀取與保存profile.properties文件

5. thread

DataDumpThread :將性能分析數(shù)據(jù)寫(xiě)到log線程InnerSocketThread :控制開(kāi)關(guān)的線程,用于配合TProfileClientSamplerThread :調(diào)用棧采樣線程TimeControlThread :開(kāi)始時(shí)間結(jié)束時(shí)間控制線程

6. client包:客戶端

TProfileClient:TProfiler客戶端,用來(lái)遠(yuǎn)程打開(kāi) 關(guān)閉及查看狀態(tài)

代碼量統(tǒng)計(jì)

空行:2357 注釋行:1420 代碼行:468


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜兰市| 宜都市| 巩留县| 天门市| 宜兰县| 临清市| 和龙市| 封丘县| 平乡县| 闻喜县| 临江市| 舞阳县| 上蔡县| 五常市| 水城县| 鹤壁市| 平安县| 英德市| 静海县| 吉木乃县| 布拖县| 和龙市| 柯坪县| 衢州市| 东兰县| 吐鲁番市| 雅江县| 乌拉特后旗| 华安县| 陆丰市| 武山县| 香格里拉县| 和林格尔县| 读书| 台湾省| 宜昌市| 泰安市| 庆元县| 甘肃省| 华池县| 札达县|