利用周末的時(shí)間,寫(xiě)了一個(gè)檢測(cè)Android代碼JIT友好度的工具,取個(gè)名字為DroidJitChecker。希望可以幫助大家快速發(fā)現(xiàn)有壞味道的代碼,并且及時(shí)修正。
名詞解釋
這是什么
前提準(zhǔn)備
安裝
安裝jitwatch組件
獲取代碼
git clone git@github.com:AdoptOpenJDK/jitwatch.git
編譯
進(jìn)入上面的repo目錄,采用以下三種方法之一即可
ant
ant clean compile test run
Maven
mvn clean compile test exec:java
Gradle
gradlew clean build run
配置
獲取本repo的代碼,并打開(kāi)config.ini文件修改
[setup]jarScan = "/Users/androidyue/github/jitwatch/jarScan.sh"maxMethodSize = 325outputDir = "/tmp/DroidJitChecker/output_new/"
修改說(shuō)明
如何使用
使用比較簡(jiǎn)單,打開(kāi)終端,執(zhí)行如下語(yǔ)句
ruby jitChecker.rb your_android_project jarTask
注意:jarTask是一個(gè)將工程的java文件編譯成jar包的任務(wù),可以通過(guò)執(zhí)行./gradlew tasks 查看,然后選擇以jar開(kāi)頭的任務(wù)即可。
查看結(jié)果
一個(gè)典型的內(nèi)容示例
MD4.mdfour64
Package:com.app.utilsParameters:int[]ByteSize:1129
如何解決
貢獻(xiàn)代碼
任何有幫助的建議都?xì)g迎。
以下代碼貢獻(xiàn)更收歡迎
美化結(jié)果展示頁(yè)面(HTML,CSS)
問(wèn)題
問(wèn):字節(jié)量大的方法一定要修改么,修改后就能JIT編譯么
答:字節(jié)量大的方法建議修改,非強(qiáng)制,修改后不一定就能JIT編譯,因?yàn)閷?duì)JIT優(yōu)化并不意味著JIT就編譯該方法,還需要其他因素,比如該方法的調(diào)用頻率。所以這是一個(gè)你情我愿的事情。
為什么用Ruby
答:有了idea時(shí)很糾結(jié),因?yàn)椴淮_定用什么語(yǔ)言實(shí)現(xiàn),尤其是在Python和ruby之間,為此問(wèn)了不少同學(xué),最后“一意孤行”決定用Ruby了,不喜歡Python的強(qiáng)制對(duì)齊,超級(jí)喜歡Ruby的字符串模板。Ruby很簡(jiǎn)單,很人性化,相信你會(huì)喜歡的。
源碼
DroidJitChecker@Github
以上就是對(duì)Android JIT 代碼友好度檢測(cè)工具的資料整理,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選