[*] Show timing information on printks 打開后,每個printk的前面都會顯示時間戳 主要用來測量內核啟動過程各個階段的耗時 initcall_debug 眾所周知, kernel 啟動時會執行不同等級的 initcall ,而每個 initcall 的耗時也是可以統計的。 在 kernel 的 cmdline 中加入參數 initcall_debug=1 : initcall_debug = 1 setargs_nand =setenv bootargs console= ${console} earlyprintk= ${earlyprintk} root= ${nand_root} initcall_debug= ${initcall_debug} init= ${init} 開啟后,就" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

幾種統計內核啟動耗時的方法

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者: Vincent ? 2023-10-04 15:01 ? 次閱讀

啟動耗時統計

printk time

打開kernel配置:

kernel hacking --- >
[*] Show timing information on printks

打開后,每個printk的前面都會顯示時間戳

主要用來測量內核啟動過程各個階段的耗時

initcall_debug

眾所周知,kernel啟動時會執行不同等級的initcall,而每個initcall的耗時也是可以統計的。

kernelcmdline中加入參數initcall_debug=1

initcall_debug=1
setargs_nand=setenv bootargs console=${console} earlyprintk=${earlyprintk} root=${nand_root} initcall_debug=${initcall_debug} init=${init}

開啟后,就能打印每個initcall函數調用及耗時。

bootgraph

內核自帶了一個工具用于統計啟動時間:scripts/bootgraph.pl

使用該工具需要打開內核配置CONFIG_PRINTK_TIME=y,并且在cmdline中加上"initcall_debug=1"

系統啟動之后,執行命令:

dmesg|perl $(kernel_dir)/script/bootgraph.pl > out.svg

用瀏覽器查看out.svg文件,可以看到內核啟動過程中各個階段的耗時。

這個工具有點類似于perf的火焰圖,可以統計啟動各階段的耗時。

bootchart

除了內核自帶的工具,也有開源的工具可用:bootchart。

bootchart是一個用于linux啟動過程性能分析的開源軟件工具,在系統啟動過程自動收集CPU占用率、進程等信息,并以圖形方式顯示分析結果,可用作指導優化系統啟動過程。

  • 修改kernel cmdline。將其中的init修改為“init=/sbin/bootchartd”。
  • 收集信息。bootchartd會從/proc/stat,/proc/diskstat/proc/[pid]/stat中采集信息,經過處理后保存為bootchart.tgz文件
  • 轉換圖片。在pc上通過pybootchartgui.py工具將bootchart.tgz轉換為bootchart.png,方便分析

最后也會成圖片供做分析,例如:

圖片

bootchar主要用來測量掛載文件系統到主應用程序啟動過程中的耗時

gpio+示波器

可以找一個在系統啟動過程中空閑的GPIO,在適當位置設置GPIO電平。

通過示波器抓取波形可以得到各階段耗時。

通常該方法被用來 測量整個啟動的耗時,或者各階段的耗時 ,該方法也是用的比較多的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 示波器
    +關注

    關注

    113

    文章

    6279

    瀏覽量

    185604
  • 內核
    +關注

    關注

    3

    文章

    1381

    瀏覽量

    40363
  • Linux
    +關注

    關注

    87

    文章

    11336

    瀏覽量

    210098
收藏 人收藏

    評論

    相關推薦

    請問DM8168上怎么統計算法程序的耗時?

    大家好!請問,CCSv6單獨連接DM8168上的DSP C674x后,已經可以運行算法程序,不過怎么統計該算法程序的耗時?
    發表于 02-20 10:45

    幾種Linux下后臺啟動jar包的方法介紹

    ,但是窗口被鎖定,當我們關閉窗口或Ctrl + C打斷程序運行時,程序就會退出,這肯定不是我們想要的,下面我介紹幾種Linux下后臺啟動jar包的方法
    發表于 07-22 08:02

    統計的學習方法

    統計學習方法感知機
    發表于 07-15 10:33

    內核是如何啟動

    UbuntuLTS16.04_x64系統 *參考資料:《嵌入式Linux應用開發手冊》*/目錄內核啟動流程分析之編譯體驗與配置1、解壓縮2、打補丁3、配置3.1 方法一:修改...
    發表于 12-20 07:15

    Cortex-M3內核HardFault錯誤調試定位方法有哪幾種

    STM32程序進入HardFault_Handler故障的原因有哪些?Cortex-M3內核HardFault錯誤調試定位方法有哪幾種?
    發表于 01-27 07:03

    分辨矩陣法耗時推算

    分辨矩陣法耗時推算:針對粗集理論的分辨矩陣方法求解知識約簡過程中時空性能上存在的問題,提出分辨矩陣法耗時推算的原理和算法,包括2 個耗時段的推算及推算結果的可靠
    發表于 10-17 23:06 ?17次下載

    幾種啟動電路圖

    幾種啟動電路圖
    發表于 01-20 22:44 ?5438次閱讀
    <b class='flag-5'>幾種</b>軟<b class='flag-5'>啟動</b>電路圖

    linux內核啟動內核解壓過程分析

    linux啟動內核解壓過程分析,一份不錯的文檔,深入了解內核必備
    發表于 03-09 13:39 ?1次下載

    Linux內核文檔:ARM-啟動

    Linux內核文檔:ARM-啟動
    發表于 10-30 10:15 ?6次下載
    Linux<b class='flag-5'>內核</b>文檔:ARM-<b class='flag-5'>啟動</b>

    用戶與內核空間數據交換的方式之一:內核啟動參數

    Linux 提供了一種通過 bootloader 向其傳輸啟動參數的功能,內核開發者可以通過這種方式來向內核傳輸數據,從而控制內核啟動行為。
    發表于 05-14 15:42 ?513次閱讀

    內核級HOOK的幾種實現方法與應用說明

    實現內核級HOOK 對于攔截、分析、跟蹤系統內核起著致關重要的作用。實現的方法不同意味著應用側重點的不同。如想要攔截NATIVE API 那么可能常用的就是HOOKSERVICE TABLE 的
    發表于 11-10 17:35 ?5次下載

    電機軟啟動幾種方式_電機軟啟動最簡單的方法

    電機軟啟動是一種通過逐漸升高電機電壓和電流,減小電機啟動時的電流沖擊,保護電機和電網,提高電機的使用壽命和運行效率的控制方式。常見的電機軟啟動方式包括以下幾種:   電壓降低
    發表于 03-09 09:35 ?1w次閱讀

    Linux內核常用的幾種鏡像文件

    簡述幾種常用的內核鏡像文件:vmlinux、Image、zImage、bzImage、uImage、bootpImage、XIPImage等等。
    發表于 06-23 11:49 ?1.2w次閱讀
    Linux<b class='flag-5'>內核</b>常用的<b class='flag-5'>幾種</b>鏡像文件

    Linux內核啟動流程(下)

    本篇是通用內核啟動階段,一般是C語言實現。
    發表于 06-23 14:08 ?596次閱讀
    Linux<b class='flag-5'>內核</b><b class='flag-5'>啟動</b>流程(下)

    如何在內核啟動secondary cpu

    啟動secondary cpu 內核啟動secondary cpu之前當然需要為其準備好執行環境,因為內核中cpu最終都將由調度器管理,故此時調度子系統應該要初始化完成。 同時cpu
    的頭像 發表于 12-05 15:46 ?645次閱讀
    如何在<b class='flag-5'>內核</b>中<b class='flag-5'>啟動</b>secondary cpu
    主站蜘蛛池模板: 欧洲电影巜肉欲丛林| 男助理憋尿PLAY灌尿BL出去| 99RE6国产精品视频播放| 亚洲字幕在线观看| 午夜性爽视频男人的天堂在线| 日本红怡院亚洲红怡院最新| 奶大B紧17p| 男人把女人桶到高潮嗷嗷叫| 久久精品国产欧美日韩99热| 狠很橹快播| 亚洲欧美成人| 內射XXX韩国在线观看| 久久精品亚洲热综合一本奇米| 好看AV中文字幕在线观看| 国产学生在线播放精品视频| 国产女人喷潮视频免费| 97无码欧美熟妇人妻蜜桃天美| 友田真希息与子中文字幕| 亚洲综合无码一区二区| 亚洲色欲色欲www474ee| 欧美性爱-第1页| 欧美极品尿交| 欧美黑人经典片免费观看| 免费看成人毛片| 嫩草视频在线观看免费| 欧美激情视频一区二区| 欧美午夜特黄AAAAAA片| 欧美日韩亚洲中字二区| 日本毛片久久国产精品| 色偷偷777| 美女扒开腿让男生桶免费看动态图| 久久在精品线影院| 国产亚洲欧洲日韩在线观看| 国产老头与老太hd| 极品色αv影院| 恋夜影院支持安卓视频美女| 男人J放进女人P全黄网站| 强奷乱码欧妇女中文字幕熟女| 美女的隐私蜜桃传媒免费看| 嫩草影院成人| 日韩欧美中文字幕在线|