Android——bootchart,androidbootchart

來源:互聯網
上載者:User

Android——bootchart,androidbootchart
bootchart:android原生內建的開機效能查看機制。通過收集android開機過程中的各種log資料,最終可以圖表的形式展現各個進程在開機過程中的效能。(部落格不能斷…)撰寫不易,轉載需註明出處:http://blog.csdn.net/jscese/article/details/45933943本文來自 【jscese】的部落格!編譯bootchart

bootchart 源碼位於:\system\core\init\bootchart.c 屬於init
查看對應Android.mk,其中有這麼一段:

ifeq ($(strip $(INIT_BOOTCHART)),true)LOCAL_SRC_FILES += bootchart.cLOCAL_CFLAGS    += -DBOOTCHART=1endif

很明顯的變數控制編譯了,如果想要把bootchart編譯進init,要麼就export 這個變數為true,要麼就定義賦值。
還有個對應的bootchart.h 標頭檔,裡面有宏控制,想要用bootchart,怎麼改就不多說了~

原生的啟動是放在init.c的main裡面:

#if BOOTCHARTqueue_builtin_action(bootchart_init_action, "bootchart_init");#endif

可以看到首先跑的應該是bootchart裡面的 bootchart_init 這個函數
可以稍微看下bootchart的源碼,其中有這麼一句:

 proc_read( LOG_STARTFILE, buff, sizeof(buff) ); ... int  fd = open( LOG_ACCT, O_WRONLY|O_CREAT|O_TRUNC,0644); //這些檔案都是/data分區下面的

第一個proc_read讀取的算是一個配置時間: /data/bootchart-start,來決定bootchart從開啟到結束的時間。
第二個自然就是抓取的log資訊 存放的位置了:/data/bootchart
那麼必然是需要data分區先掛載好,所以啟動bootchart的地方得衡量!

使用bootchart

正常編譯進系統之後,就需要手動的去設定一下上面說到的配置了:

echo 50 > /data/bootchart-start//寫個50s進去

重啟即可,運行正常的話,可在/data/bootchart下面看到五個檔案:

root@86v:/ # ll /data/bootchart                                                -rw-rw-rw- root     root          517 2015-05-23 15:17 header-rw-r--r-- root     root            0 2015-05-23 15:17 kernel_pacct-rwxr-xr-x root     root       196608 2015-05-23 15:17 proc_diskstats.log-rwxr-xr-x root     root      3735552 2015-05-23 15:17 proc_ps.log-rwxr-xr-x root     root       131072 2015-05-23 15:17 proc_stat.log

打包為bootchart.tgz:

busybox tar zcvf bootchart.tgz header kernel_pacct proc_diskstats.log proc_ps.log proc_stat.log

adb pull 或者直接copy出來,放到pc上。

ubuntu的話可以用apt-get 去安裝bootchart,可以用bootchart bootchart.tgz 去解析為圖表,有可能會有錯誤,網上有人給出來了修改對應python指令碼的方法,不難。
可惜我已經不在ubuntu下了,諸多不便 - -

Windows下的話,得去找個bootchart對應的jar包,可以從ubuntu上bootchart安裝目錄下拷出來

java -jar bootchart.jar bootchart.tgz

沒有錯誤的話可以得到一張bootchart.png圖片,上一張圖:

通俗的理解就是 藍色為cpu佔用 ,粉色為io等待,也就是檔案操作的耗時,橫軸為起機時間,以進程為單位描述。

就到這裡吧~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.