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

99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內(nèi)不再提示

幾種統(tǒng)計內(nèi)核啟動耗時的方法

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者: Vincent ? 2023-10-04 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

啟動耗時統(tǒng)計

printk time

打開kernel配置:

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

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

主要用來測量內(nèi)核啟動過程各個階段的耗時

initcall_debug

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

kernelcmdline中加入?yún)?shù)initcall_debug=1

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

開啟后,就能打印每個initcall函數(shù)調(diào)用及耗時。

bootgraph

內(nèi)核自帶了一個工具用于統(tǒng)計啟動時間:scripts/bootgraph.pl

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

系統(tǒng)啟動之后,執(zhí)行命令:

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

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

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

bootchart

除了內(nèi)核自帶的工具,也有開源的工具可用:bootchart。

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

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

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

圖片

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

gpio+示波器

可以找一個在系統(tǒng)啟動過程中空閑的GPIO,在適當位置設(shè)置GPIO電平。

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

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

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

    關(guān)注

    113

    文章

    6703

    瀏覽量

    189215
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41421
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

    213750
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    請問DM8168上怎么統(tǒng)計算法程序的耗時?

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

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

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

    統(tǒng)計的學習方法

    統(tǒng)計學習方法感知機
    發(fā)表于 07-15 10:33

    內(nèi)核是如何啟動

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

    Cortex-M3內(nèi)核HardFault錯誤調(diào)試定位方法有哪幾種

    STM32程序進入HardFault_Handler故障的原因有哪些?Cortex-M3內(nèi)核HardFault錯誤調(diào)試定位方法有哪幾種?
    發(fā)表于 01-27 07:03

    分辨矩陣法耗時推算

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

    幾種啟動電路圖

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

    linux內(nèi)核啟動內(nèi)核解壓過程分析

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

    Linux內(nèi)核文檔:ARM-啟動

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

    用戶與內(nèi)核空間數(shù)據(jù)交換的方式之一:內(nèi)核啟動參數(shù)

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

    內(nèi)核級HOOK的幾種實現(xiàn)方法與應用說明

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

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

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

    Linux內(nèi)核常用的幾種鏡像文件

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

    Linux內(nèi)核啟動流程(下)

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

    如何在內(nèi)核啟動secondary cpu

    啟動secondary cpu 內(nèi)核啟動secondary cpu之前當然需要為其準備好執(zhí)行環(huán)境,因為內(nèi)核中cpu最終都將由調(diào)度器管理,故此時調(diào)度子系統(tǒng)應該要初始化完成。 同時cpu
    的頭像 發(fā)表于 12-05 15:46 ?910次閱讀
    如何在<b class='flag-5'>內(nèi)核</b>中<b class='flag-5'>啟動</b>secondary cpu