bootchart 工具
<p>bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统。</p>
<p>1、UBuntu下安装bootchart工具
需要安装的工具有两个bootchart和pybootchartgui,用于生成分析结果图片。
执行命令如下:</p>
<pre><code class="language-java">apt-get install pybootchartgui</code></pre>
<p>2、在Android支持bootchart
Android系统编译时,默认的没有打开bootchart的编译开关,即没有把bootchart编译进系统中。Android对bootchar 的支持在init 中。在init 中加入对bootchart 的支持。</p>
<p>1) 修改代码并编译带bootchart功能的rom</p>
<p>修改 system/core/init/Android.mk</p>
<pre><code>INIT_BOOTCHART := true
#ifeq ($(strip $(INIT_BOOTCHART)),true)
LOCAL_SRC_FILES += bootchart.c
LOCAL_CFLAGS += -DBOOTCHART=1
#endif</code></pre>
<p>修改 system\core\init\bootchart.h </p>
<pre><code>#ifndef BOOTCHART
# define BOOTCHART 1 //由0 --&gt; 1
#endif</code></pre>
<p>或者这样修改system/core/init/Android.mk 文件</p>
<h1>ifeq ($(strip $(INIT_BOOTCHART)),true)</h1>
<pre><code> LOCAL_SRC_FILES += bootchart.c
LOCAL_CFLAGS += -DBOOTCHART=1
#endif</code></pre>
<p>这样修改的话,编译源码之前先设置环境变量</p>
<pre><code class="language-java">export INIT_BOOTCHART=true</code></pre>
<p>2) 然后直接编译源码,得到新版本</p>
<p>kitkat_T3\lichee\tools\pack\sun8iw11p1_android_t3-p3_uart0.img</p>
<p>3) 烧录新版本或者push文件</p>
<pre><code class="language-java">adb push Z:\pengdeping\git_clone\QD401\kitkat_T3\android\out\target\product\t3-p3\root/init /init</code></pre>
<p>4)设定开机数据采样时间(ms)</p>
<pre><code>echo 60 &gt; /data/bootchart-start</code></pre>
<p>5) 创建结果生成目录</p>
<pre><code>mkdir /data/bootchart</code></pre>
<p>6) 重新启动后在/data/bootchart会生成测量数据</p>
<pre><code>root@t3-p3:/ # ls data/bootchart
header
kernel_pacct
proc_diskstats.log
proc_ps.log
proc_stat.log</code></pre>
<p>到此为止,bootchart执行测量后生成的测量数据已经完成。bootchart对Android开机测量是通过内建在init进程中实现的,在后台执行测量.不过bootchart的测量时段是从bootchart被初始化之后到home screen出来之前,不包括bootloader和kernel的执行时间。</p>
<p>7) bootchart测量结果的图形化</p>
<p>adb shell --> 进入bootchart 目录下,执行</p>
<pre><code class="language-java">busybox tar cvf bootchart.tgz *</code></pre>
<p>生成bootchart.tgz文件</p>
<p>8) 把bootchart.tgz文件拷贝到安装有bootchart的pc上,然后执行:</p>
<pre><code class="language-java">bootchart -f png bootchart.tgz</code></pre>
<p>生成bootchart.png 图片</p>