小編給大家分享一下openwrt+perf+熱點函數(shù)分析的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站專注于秭歸網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供秭歸營銷型網(wǎng)站建設(shè),秭歸網(wǎng)站制作、秭歸網(wǎng)頁設(shè)計、秭歸網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造秭歸網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供秭歸網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1.1 背景
最近玩起了openwrt,perf工具對分析程序性能有幫助,可以分析熱點函數(shù),所以就想把它搞上系統(tǒng)上,折騰挺長時間的
*1.2 準備工作 *
安裝vmware,安裝ubuntu,把ubuntu設(shè)置成橋接(或者nat也行,配置成橋接目的是為了能讓windows能通過xshell工具或者winscp工具和ubunut傳輸文件),并能上網(wǎng),編譯openwrt需要聯(lián)網(wǎng),編譯過程中,會自動下載一些所有需要的lib,第一次編譯openwrt固件需要很長時間。
*1.3 配置內(nèi)核開始編譯 *
make menuconfig 進入內(nèi)核配置界面,“/”搜索perf工具,需要開啟哪些編譯選項。
開啟perf工具需要glibc
依次進入以下選項,進行選擇
按下"/"搜索glic的位置在哪
"(x)"表示不選中,”( )“表示選中
perf工具可以選上了
1.4 退出,進入主界面
make V=99編譯,(如果是第一次編譯最好不要用多線程,第一次成功后可以make V=99 -j(n)(多線程編譯)
經(jīng)過漫長的編譯,終于成功,第一次編譯,可能要10個小時,中間出錯的話,絕招是缺啥補啥,編譯好的固件大小為9.8M
*1.5 燒寫到mt7688的板子上看看效果如何 *
perf top -p 進程pid -K -g
看不到函數(shù)名字是因為除了應(yīng)用程序要加-g 參數(shù)編譯之后,像libc.so,等等庫也要加-g參數(shù)編譯,openwrt默認是把庫strip了,自己寫的程序,可以自己寫makefile加-g編譯,像這些libc.so這些庫的話,因為openwrt編譯過程,會把libc.so保留一個沒有strip的,所以直接編譯完固件之后
在固件源碼處find xxx -iname libc.so,把沒有strip的庫用winwscp工具,傳到mt7688的/lib/下面(記錄是以覆蓋的方式,不要刪除libc.so,再拷貝),再次使用perf工具,就能看到libc.so的函數(shù)名了,其它庫也一樣。
以上是“openwrt+perf+熱點函數(shù)分析的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!