<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux系統啟動(dòng)時(shí)間優(yōu)化方案

Linux系統啟動(dòng)時(shí)間優(yōu)化方案

作者: 時(shí)間:2011-05-20 來(lái)源:網(wǎng)絡(luò ) 收藏

(1)首先是對過(guò)程的跟蹤和分析,生成詳細的報告。

本文引用地址:http://dyxdggzs.com/article/150727.htm

  較為簡(jiǎn)單可行的方式是通過(guò)PrintkTime功能為過(guò)程的所有內核信息增加戳,便于匯總分析。PrintkTime最早為CELF所提供的一個(gè)內核補丁,在后來(lái)的Kernel 2.6.11版本中正式納入標準內核。所以大家可能在新版本的內核中直接啟用該功能。如果你的內核因為某些原因不能更新為2.6.11之后的版本,那么可以參考CELF提供的方法修改或直接下載它們提供的補?。篽ttp://tree.celinuxforum.org/CelfPubWiki/PrintkTimes

  開(kāi)啟PrintkTime功能的方法很簡(jiǎn)單,只需在內核啟動(dòng)參數中增加“time”即可。當然,你也可以選擇在編譯內核時(shí)直接指定“Kernel hacking”中的“Show timing information on printks”來(lái)強制每次啟動(dòng)均為內核信息增加戳。這一種方式還有另一個(gè)好處:你可以得到內核在解析啟動(dòng)參數前所有信息的時(shí)間。因此,我選擇后一種方式。

  當完成上述配置后,重新啟動(dòng),然后通過(guò)以下命令將內核啟動(dòng)信息輸出到文件:

  dmesg -s 131072 > ktime

  然后利用一個(gè)腳本“show_delta”(位于Linux源碼的scripts文件夾下)將上述輸出的文件轉換為時(shí)間增量顯示格式:

  /usr/src/linux-x.xx.xx/scripts/show_delta ktime > dtime

  這樣,你就得到了一份關(guān)于Linux啟動(dòng)時(shí)間消耗的詳細報告。

  (2)然后,我們就來(lái)通過(guò)這份報告,找出啟動(dòng)中相對耗時(shí)的過(guò)程。

  必須明確一點(diǎn):報告中的時(shí)間增量和內核信息之間沒(méi)有必然的對應關(guān)系,真正的時(shí)間消耗必須從內核源碼入手分析。

  這一點(diǎn)對于稍微熟悉編程的朋友來(lái)說(shuō)都不難理解,因為時(shí)間增量只是兩次調用printk之間的時(shí)間差值。通常來(lái)說(shuō),內核啟動(dòng)過(guò)程中在完成一些耗時(shí)的任務(wù),如創(chuàng )建hash索引、probe硬件設備等操作后會(huì )通過(guò)printk將結果打印出來(lái),這種情況下,時(shí)間增量往往反映的是信息對應過(guò)程的耗時(shí);但有些時(shí)候,內核是在調用printk輸出信息后才開(kāi)始相應的過(guò)程,那么報告中內核信息相應過(guò)程的時(shí)間消耗對應的是其下一行的時(shí)間增量;還有一些時(shí)候,時(shí)間消耗在了兩次內核信息輸出之間的某個(gè)不確定的時(shí)段,這樣時(shí)間增量可能就完全無(wú)法通過(guò)內核信息反應出來(lái)了。

  所以,為了準確判斷真正的時(shí)間消耗,我們需要結合內核源碼進(jìn)行分析。必要的時(shí)候,例如上述第三種情形下,還得自己在源碼中插入printk打印,以進(jìn)一步確定實(shí)際的時(shí)間消耗過(guò)程。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>