利用周末的时间,写了一个检测Android代码JIT友好度的工具,取个名字为DroidJitChecker。希望可以帮助大家快速发现有坏味道的代码,并且及时修正。
名词解释
这是什么
前提准备
安装
安装jitwatch组件
获取代码
git clone git@github.com:AdoptOpenJDK/jitwatch.git
编译
进入上面的repo目录,采用以下三种方法之一即可
ant
ant clean compile test run
Maven
mvn clean compile test exec:java
Gradle
gradlew clean build run
配置
获取本repo的代码,并打开config.ini文件修改
[setup]jarScan = "/Users/androidyue/github/jitwatch/jarScan.sh"maxMethodSize = 325outputDir = "/tmp/DroidJitChecker/output_new/"
修改说明
如何使用
使用比较简单,打开终端,执行如下语句
ruby jitChecker.rb your_android_project jarTask
注意:jarTask是一个将工程的java文件编译成jar包的任务,可以通过执行./gradlew tasks 查看,然后选择以jar开头的任务即可。
查看结果
一个典型的内容示例
MD4.mdfour64
Package:com.app.utilsParameters:int[]ByteSize:1129
如何解决
贡献代码
任何有帮助的建议都欢迎。
以下代码贡献更收欢迎
美化结果展示页面(HTML,CSS)
问题
问:字节量大的方法一定要修改么,修改后就能JIT编译么
答:字节量大的方法建议修改,非强制,修改后不一定就能JIT编译,因为对JIT优化并不意味着JIT就编译该方法,还需要其他因素,比如该方法的调用频率。所以这是一个你情我愿的事情。
为什么用Ruby
答:有了idea时很纠结,因为不确定用什么语言实现,尤其是在Python和ruby之间,为此问了不少同学,最后“一意孤行”决定用Ruby了,不喜欢Python的强制对齐,超级喜欢Ruby的字符串模板。Ruby很简单,很人性化,相信你会喜欢的。
源码
DroidJitChecker@Github
以上就是对Android JIT 代码友好度检测工具的资料整理,谢谢大家对本站的支持!
新闻热点
疑难解答