perf性能工具寫(xiě)的文章也有幾篇了,這里就不多做介紹了,有興趣的朋友可以看我之前的幾篇文章:《perf性能分析工具使用分享》。今天分享的內(nèi)容是openwrt里面增加perf,因?yàn)槟J(rèn)是沒(méi)有的。
歡迎關(guān)注微信公眾號(hào):羽林君,或者添加作者個(gè)人微信:become_me
openwrt的配置增加perf
首先使用 /
進(jìn)入搜索perf關(guān)鍵詞,默認(rèn)如下:
接下來(lái)我們開(kāi)始一個(gè)個(gè)分析,看哪些是我們需要的:
第一個(gè)是KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE 是控制編譯優(yōu)化的
第二個(gè)是 KERNEL_CGROUP_PERF
第三個(gè)是KERNEL_PERF_EVENTS 支持內(nèi)存支持perf的events捕獲
第四個(gè)是KERNEL_RPI_AXIPERF Prompt: Compile the kernel with RaspberryPi AXI Performance monitors 使用 RaspberryPi AXI 性能監(jiān)視器編譯內(nèi)核
- 第五個(gè)是PACKAGE_perf 是可以支持使用的perf工具
從上面搜索的內(nèi)容來(lái)看,第二個(gè)、第三個(gè)、第五個(gè)應(yīng)該是我們需要的 ,尤其是第五個(gè),
但是當(dāng)我們打開(kāi)第五個(gè)位置時(shí)候:
發(fā)現(xiàn)是沒(méi)有perf選項(xiàng)的,所以我們需要設(shè)置它的依賴(lài)選項(xiàng),才能在第五項(xiàng)出現(xiàn)perf
先按照第二項(xiàng)和第三項(xiàng)配置:
設(shè)置以下兩個(gè)選項(xiàng):
Compile?the?kernel?with?performance?events?and?counters
Compile?the?kernel?with?profiling?enabled
這個(gè)時(shí)候第五項(xiàng)出現(xiàn)了perf,我們就可以選中perf
make 編譯
拷貝新編譯的固件到設(shè)備
重啟后發(fā)現(xiàn)perf命令可以出現(xiàn)了
perf命令測(cè)試
perf top -p (進(jìn)程pid) -K -g 執(zhí)行如下:perf top -p 2184 -K -g
看不到函數(shù)名字是因?yàn)槌?a class="article-link" target="_blank" href="/tag/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F/">應(yīng)用程序要加-g 參數(shù)編譯之后,像libc.so,等等庫(kù)也要加-g參數(shù)編譯,openwrt默認(rèn)是把庫(kù)strip了,自己寫(xiě)的程序,可以自己寫(xiě)makefile加-g編譯,像這些libc.so這些庫(kù)的話,因?yàn)閛penwrt編譯過(guò)程,會(huì)把libc.so保留一個(gè)沒(méi)有strip的,所以直接編譯完固件之后
在固件源碼處find xxx -iname libc.so,把沒(méi)有strip的庫(kù)用winwscp工具,傳到mt7688的/lib/下面(記錄是以覆蓋的方式,不要?jiǎng)h除libc.so,再拷貝),再次使用perf工具,就能看到libc.so的函數(shù)名了,其它庫(kù)也一樣
再使用perf top
結(jié)語(yǔ)
這就是我自己在openwrt增加perf使用分享。如果大家有更好的想法和需求,也歡迎大家加我好友交流分享哈。
作者:良知猶存,白天努力工作,晚上原創(chuàng)公號(hào)號(hào)主。公眾號(hào)內(nèi)容除了技術(shù)還有些人生感悟,一個(gè)認(rèn)真輸出內(nèi)容的職場(chǎng)老司機(jī),也是一個(gè)技術(shù)之外豐富生活的人,攝影、音樂(lè) and 籃球。關(guān)注我,與我一起同行。