V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yhm2046
V2EX  ›  Android

请问 android 的测试开机工具 bootchart 是从哪个阶段到哪个阶段为止?

  •  
  •   yhm2046 · 2022-05-18 10:42:57 +08:00 · 7842 次点击
    这是一个创建于 912 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查了好多资料都没有说明白,只知道是从 init 进程开始计时,无 boot rom 和 bootloader ,kernel 部分的统计。但是截止时间不知道到哪里截止,谁能解释一下谢谢。 另外请问还有别的工具可以统计分析 bootloader 和 kernel 阶段的耗时吗?我们需要优化开机时间下面是获取的 bootchart 图片

    ![image]( https://drive.google.com/file/d/1wkhMeR7KykAr-efPJuR-H45IKGL5dvLm/view?usp=sharing)
    
    vsyf
        1
    vsyf  
       2022-05-18 22:58:35 +08:00
    但是截止时间不知道到哪里截止
    => 第一个应用(launcher)启动之后修改 sys.boot_completed 属性时就是 bootchart 结束的时间.
    yhm2046
        2
    yhm2046  
    OP
       2022-05-19 11:31:09 +08:00
    @vsyf #1 请问这个属性值是系统属性还是 launcher 属性,在哪里修改? 我问了同事他没有修改过
    yhm2046
        4
    yhm2046  
    OP
       2022-05-19 12:20:09 +08:00
    @vsyf #3 谢谢,请问 sys.boot_completed 对应的开机设置是 sys.boot_start 吗? 我没有搜到
    vsyf
        5
    vsyf  
       2022-05-19 12:32:03 +08:00
    @yhm2046
    可以去 system/core 下面搜索看看
    yhm2046
        6
    yhm2046  
    OP
       2022-05-19 14:49:56 +08:00
    @vsyf #5 你好我在 system/core 下面只搜索到 boot_reason 没有 boot_start , 是没有定义吗?
    vsyf
        7
    vsyf  
       2022-05-19 17:51:05 +08:00
    @yhm2046
    你看下 bootchart 是如何运行的就清楚了

    在 init 启动的过程中解析 init.rc 执行 `bootchart start` 命令
    https://cs.android.com/android/platform/superproject/+/master:system/core/rootdir/init.rc;l=685
    在 sys.boot_completed 属性被修改的时候执行 `bootstart stop` 命令
    https://cs.android.com/android/platform/superproject/+/master:system/core/rootdir/init.rc;l=1196

    `bootchart` 调用对应的 `do_bootchart` 函数
    https://cs.android.com/android/platform/superproject/+/master:system/core/init/builtins.cpp;l=1383
    https://cs.android.com/android/platform/superproject/+/master:system/core/init/bootchart.cpp;l=210

    即`bootchart start` 时启动线程每 200ms 将进程和磁盘信息写入文件,`bootchart stop` 停止线程。
    yhm2046
        8
    yhm2046  
    OP
       2022-05-19 18:09:21 +08:00
    @vsyf #7 谢谢,还是要多看源码。另外请问 boot rom 和 bootloader ,kernel 部分的统计有什么估计可以记录耗时?我们现在需要裁剪优化启动时间,请多指教
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5593 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 06:39 · PVG 14:39 · LAX 22:39 · JFK 01:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.