最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 代碼JIT友好度檢測工具

 更新時間:2016年08月31日 14:51:37   作者:技術(shù)小黑屋  
本文主要介紹一個Android代碼JIT友好度檢測工具,這里對JIT工具的資料做了一下整理,有需要的小伙伴可以參考下

利用周末的時間,寫了一個檢測Android代碼JIT友好度的工具,取個名字為DroidJitChecker。希望可以幫助大家快速發(fā)現(xiàn)有壞味道的代碼,并且及時修正。

名詞解釋

  1. JIT:JIT全稱Just-in-time compilation。意思為實時編譯,是JVM中一種優(yōu)化技術(shù),對頻繁調(diào)用并且符合條件的方法進行優(yōu)化將字節(jié)碼翻譯成機器代碼,提升執(zhí)行效率。
  2. 方法大?。好總€方法的方法體實現(xiàn)都可用字節(jié)作為單位進行衡量,通常情況下,方法體越大,其方法大小也越大。
  3. JIT友好:通常方法體實現(xiàn)越小越簡單,越對JIT編譯友好。

這是什么

  1. 這是一個檢測Android(目錄組織結(jié)構(gòu))代碼JIT友好度的工具
  2. 該工具基于AdoptOpenJDK/jitwatch中的jarScan.sh進行組裝
  3. 輸出結(jié)果支持html,便于在瀏覽器中查看

前提準(zhǔn)備

  1. 所檢測Android項目可以支持Gradle編譯成功
  2. 安裝jitwatch套件
  3. ruby運行環(huán)境

安裝

安裝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 = 325
outputDir = "/tmp/DroidJitChecker/output_new/"

修改說明

  1. jarScan 必須修改,修改成已經(jīng)安裝的的JarScan路徑
  2. maxMethodSize 無需更改,如更改請謹(jǐn)慎
  3. 輸出目錄,outputDir,建議修改為可以持續(xù)存在的目錄

如何使用

使用比較簡單,打開終端,執(zhí)行如下語句

ruby jitChecker.rb your_android_project jarTask

注意:jarTask是一個將工程的java文件編譯成jar包的任務(wù),可以通過執(zhí)行./gradlew tasks 查看,然后選擇以jar開頭的任務(wù)即可。

查看結(jié)果

  1. 檢查結(jié)束后,會自動使用瀏覽器打開結(jié)果
  2. 結(jié)果文件路徑也會輸出到終端
  3. 結(jié)果文件名中包含了相關(guān)的jarTask信息,便于查找
  4. 結(jié)果內(nèi)容,依照方法的字節(jié)大小,從大到小降序排列

一個典型的內(nèi)容示例

MD4.mdfour64

Package:com.app.utils
Parameters:int[]
ByteSize:1129
  1. MD4.mdfour64 對JIT不友好的方法及其所屬類
  2. Package:com.app.utils 上述MD4所屬的包
  3. Parameters:int[] mdfour64方法接受的參數(shù)
  4. ByteSize:1129 表示mdfour64方法持有的大小

如何解決

  1. 書寫邏輯簡單,職責(zé)單一的小方法
  2. 書寫邏輯簡單,職責(zé)單一的小方法
  3. 書寫邏輯簡單,職責(zé)單一的小方法

貢獻代碼

任何有幫助的建議都歡迎。

以下代碼貢獻更收歡迎

美化結(jié)果展示頁面(HTML,CSS)

問題

問:字節(jié)量大的方法一定要修改么,修改后就能JIT編譯么

答:字節(jié)量大的方法建議修改,非強制,修改后不一定就能JIT編譯,因為對JIT優(yōu)化并不意味著JIT就編譯該方法,還需要其他因素,比如該方法的調(diào)用頻率。所以這是一個你情我愿的事情。

為什么用Ruby

答:有了idea時很糾結(jié),因為不確定用什么語言實現(xiàn),尤其是在Python和ruby之間,為此問了不少同學(xué),最后“一意孤行”決定用Ruby了,不喜歡Python的強制對齊,超級喜歡Ruby的字符串模板。Ruby很簡單,很人性化,相信你會喜歡的。

源碼

DroidJitChecker@Github

以上就是對Android JIT 代碼友好度檢測工具的資料整理,謝謝大家對本站的支持!

相關(guān)文章

  • 詳解android是如何管理內(nèi)存的

    詳解android是如何管理內(nèi)存的

    這篇文章主要介紹了詳解android是如何管理內(nèi)存的,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-03-03
  • Android使用SqLite實現(xiàn)登錄注冊功能流程詳解

    Android使用SqLite實現(xiàn)登錄注冊功能流程詳解

    這篇文章主要介紹了使用Android Studio自帶的sqlite數(shù)據(jù)庫實現(xiàn)一個簡單的登錄注冊功能,SQLite是一個軟件庫,實現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫引擎,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Android Camera實現(xiàn)毫秒級拍照實例

    Android Camera實現(xiàn)毫秒級拍照實例

    本篇文章主要介紹了Android Camera實現(xiàn)毫秒級拍照實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-06-06
  • Android開發(fā)實現(xiàn)跟隨手指的小球效果示例

    Android開發(fā)實現(xiàn)跟隨手指的小球效果示例

    這篇文章主要介紹了Android開發(fā)實現(xiàn)跟隨手指的小球效果,涉及Android圖形繪制、事件響應(yīng)、界面布局等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • 詳解升級Android Studio3.0時遇到的幾個問題

    詳解升級Android Studio3.0時遇到的幾個問題

    本篇文章主要介紹了升級Android Studio3.0時遇到的幾個問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Flutter狀態(tài)管理Bloc之登錄示例

    Flutter狀態(tài)管理Bloc之登錄示例

    這篇文章主要為大家詳細介紹了Flutter狀態(tài)管理Bloc之登錄示例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android顯示系統(tǒng)SurfaceFlinger詳解

    Android顯示系統(tǒng)SurfaceFlinger詳解

    本文詳細講解了Android顯示系統(tǒng)SurfaceFlinger,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Android如何獲取當(dāng)前CPU頻率和占用率

    Android如何獲取當(dāng)前CPU頻率和占用率

    最近在優(yōu)化 App 的性能,需要獲取當(dāng)前 CPU視頻頻率和占用率,所以本文小編就來和大家總結(jié)一下如何在Android中獲取當(dāng)前CPU頻率和占用率吧
    2025-03-03
  • android實現(xiàn)添加耳機狀態(tài)圖標(biāo)的方法

    android實現(xiàn)添加耳機狀態(tài)圖標(biāo)的方法

    這篇文章主要介紹了android實現(xiàn)添加耳機狀態(tài)圖標(biāo)的方法,較為詳細的分析了Android實現(xiàn)添加耳機圖標(biāo)的原理與相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Flutter隨機迷宮生成和解迷宮小游戲功能的源碼

    Flutter隨機迷宮生成和解迷宮小游戲功能的源碼

    這篇文章主要介紹了Flutter隨機迷宮生成和解迷宮小游戲,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論

大冶市| 冷水江市| 朝阳县| 康乐县| 沧源| 泽州县| 新干县| 永城市| 平塘县| 昌都县| 临西县| 奎屯市| 揭东县| 吉林省| 徐闻县| 广宗县| 惠来县| 韩城市| 湖南省| 广西| 北碚区| 鲁山县| 柳江县| 疏勒县| 鄄城县| 时尚| 方正县| 永修县| 宜阳县| 东平县| 南丹县| 乐业县| 柘城县| 平定县| 黎川县| 砀山县| 佛坪县| 宣汉县| 伊川县| 兴安盟| 镇坪县|