[發(fā)明專利]一種嵌入式設(shè)備上的性能調(diào)試方法在審
| 申請?zhí)枺?/td> | 202010655576.7 | 申請日: | 2020-07-09 |
| 公開(公告)號: | CN111813677A | 公開(公告)日: | 2020-10-23 |
| 發(fā)明(設(shè)計(jì))人: | 徐波;岳堅(jiān);張少倩;湯婷 | 申請(專利權(quán))人: | 杭州優(yōu)萬科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 杭州廣奧專利代理事務(wù)所(特殊普通合伙) 33334 | 代理人: | 高麗敏 |
| 地址: | 311228 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 嵌入式 設(shè)備 性能 調(diào)試 方法 | ||
本發(fā)明涉及一種嵌入式設(shè)備上的性能調(diào)試方法。其特征在于是通過編譯器插樁的方法對函數(shù)的入口和出口進(jìn)行插樁,結(jié)合輕量級PMU庫達(dá)到函數(shù)級統(tǒng)計(jì)效果,獲取系統(tǒng)中每個(gè)函數(shù)的開銷并輸出采集的結(jié)果;再讀取之前輸出的采集結(jié)果文件創(chuàng)建csv文件,解析之前保存的每個(gè)函數(shù)的記錄數(shù)據(jù),讀取對應(yīng)的工程的符號表信息、根據(jù)函數(shù)地址及符號表信息獲取函數(shù)名稱,把每個(gè)函數(shù)的性能采集數(shù)據(jù)及函數(shù)名稱寫入csv文件中,并保存,再在csv文件中根據(jù)每一項(xiàng)具體的新能數(shù)據(jù),分析個(gè)函數(shù)的開銷,找到瓶頸函數(shù)。本發(fā)明能夠迅速定位性能瓶頸函數(shù)及系統(tǒng)原因,達(dá)成性能優(yōu)化目標(biāo)。
技術(shù)領(lǐng)域
本發(fā)明涉及一種嵌入式設(shè)備上的性能調(diào)試方法。
背景技術(shù)
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,各種嵌入式設(shè)備越來越多,嵌入式設(shè)備上軟件也越來越復(fù)雜;而目前市面上嵌入式設(shè)備所運(yùn)行的操作系統(tǒng)各種各樣,freertos、ucos、threadx、nucleus、pikeos、nxp、linux,也有一些基于微內(nèi)核架構(gòu)的OS,如L4等。這些系統(tǒng)如Linux自帶了非常豐富的調(diào)試性能調(diào)試工具如perf等,但是大部分系統(tǒng)并沒有提供性能調(diào)試手段或者性能調(diào)試工具。
目前有些嵌入式設(shè)備上甚至只有非常簡單的支持多任務(wù)的系統(tǒng),完全沒有性能調(diào)試框架的;但是嵌入式設(shè)備又對性能和成本的追求一直在提升,所以需要對嵌入式設(shè)備上的運(yùn)行的程序做不斷的優(yōu)化,從而達(dá)到性能最佳。
目前嵌入式設(shè)備上的性能調(diào)試更多的通過task的角度來分析,即從任務(wù)調(diào)度的角度來分析;在調(diào)度器內(nèi)部增加一些調(diào)試信息,從而確定是哪個(gè)任務(wù)占用了大部分系統(tǒng)時(shí)間;在確定任務(wù)后再分析任務(wù)流程,通過增加trace信息從而找到性能瓶頸的代碼及數(shù)據(jù)。Linux perf是基于采樣的,在某種程度上無法做到精確定位;譬如你要去采集cache miss的行為,但perf無法精確的讓你知道每個(gè)函數(shù)發(fā)生cache miss的次數(shù)。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)存在的缺點(diǎn),提供一種嵌入式設(shè)備上的性能調(diào)試方法,能夠迅速定位性能瓶頸函數(shù)及系統(tǒng)原因,達(dá)成性能優(yōu)化目標(biāo)。
為此,本發(fā)明采取如下的技術(shù)方案:一種嵌入式設(shè)備上的性能調(diào)試方法,其特征在于是通過編譯器插樁的方法對函數(shù)的入口和出口進(jìn)行插樁,結(jié)合輕量級PMU庫達(dá)到函數(shù)級統(tǒng)計(jì)效果,獲取系統(tǒng)中每個(gè)函數(shù)的開銷并輸出采集的結(jié)果;再讀取之前輸出的采集結(jié)果文件創(chuàng)建csv文件,解析之前保存的每個(gè)函數(shù)的記錄數(shù)據(jù),讀取對應(yīng)的工程的符號表信息、根據(jù)函數(shù)地址及符號表信息獲取函數(shù)名稱,把每個(gè)函數(shù)的性能采集數(shù)據(jù)及函數(shù)名稱寫入csv文件中,并保存,再在csv文件中根據(jù)每一項(xiàng)具體的新能數(shù)據(jù),分析個(gè)函數(shù)的開銷,找到瓶頸函數(shù)。
作為優(yōu)選,開始采集時(shí),先初始化采集系統(tǒng),創(chuàng)建高性能內(nèi)存池供后續(xù)hash表entity分配使用,初始化PMU,設(shè)置相關(guān)性能采集event,并enable,設(shè)置采集開始flag,系統(tǒng)開始采集相關(guān)信息,以__cyg_profile_func_enter為每個(gè)統(tǒng)計(jì)的開始點(diǎn),為每個(gè)函數(shù)創(chuàng)建對應(yīng)的hash表entity,分別記錄每個(gè)函數(shù)的入口和出口對應(yīng)的性能數(shù)據(jù)值,并計(jì)算相應(yīng)delta值,同時(shí)也記錄函數(shù)的運(yùn)行次數(shù)等基礎(chǔ)數(shù)據(jù),并更新到hash表的entity,設(shè)置結(jié)束采集標(biāo)志,及設(shè)置采集開始的flag=false,發(fā)送采集結(jié)果獲取命令,遍歷hash表中的各entity,并根據(jù)運(yùn)行總時(shí)間進(jìn)行快速排序,輸出相關(guān)結(jié)果,保存輸出結(jié)果到文件中。
作為優(yōu)選,所述的編譯器插樁包括自行增加一個(gè)編譯器插件,所述的插件在代碼編譯階段在函數(shù)入口及退出的地方插入對應(yīng)的指令。
作為優(yōu)選,所述的編譯器插樁為直接使用編譯器參數(shù)-finstrument-functions來對函數(shù)的入口和出口進(jìn)行插樁。
作為優(yōu)選,所述的函數(shù)的開銷包括運(yùn)行時(shí)間、運(yùn)行次數(shù)、cache miss rate的性能關(guān)鍵數(shù)據(jù)。
作為優(yōu)選,所述的CSV文件為excel文件。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州優(yōu)萬科技有限公司,未經(jīng)杭州優(yōu)萬科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010655576.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 傳感設(shè)備、檢索設(shè)備和中繼設(shè)備
- 簽名設(shè)備、檢驗(yàn)設(shè)備、驗(yàn)證設(shè)備、加密設(shè)備及解密設(shè)備
- 色彩調(diào)整設(shè)備、顯示設(shè)備、打印設(shè)備、圖像處理設(shè)備
- 驅(qū)動設(shè)備、定影設(shè)備和成像設(shè)備
- 發(fā)送設(shè)備、中繼設(shè)備和接收設(shè)備
- 定點(diǎn)設(shè)備、接口設(shè)備和顯示設(shè)備
- 傳輸設(shè)備、DP源設(shè)備、接收設(shè)備以及DP接受設(shè)備
- 設(shè)備綁定方法、設(shè)備、終端設(shè)備以及網(wǎng)絡(luò)側(cè)設(shè)備
- 設(shè)備、主設(shè)備及從設(shè)備
- 設(shè)備向設(shè)備轉(zhuǎn)發(fā)
- 調(diào)試系統(tǒng)、調(diào)試方法和調(diào)試控制方法
- 一種終端調(diào)試方法和裝置
- 設(shè)備自動工程調(diào)試方法、裝置、系統(tǒng)和計(jì)算機(jī)設(shè)備
- 基于串口的遠(yuǎn)程設(shè)備調(diào)試系統(tǒng)及方法
- 一種安卓系統(tǒng)動態(tài)調(diào)試的方法及系統(tǒng)
- 調(diào)試裝置和遠(yuǎn)程調(diào)試系統(tǒng)
- 一種調(diào)試方法、裝置及系統(tǒng)
- 一種應(yīng)用程序開發(fā)的調(diào)試系統(tǒng)及方法
- 樓宇設(shè)備的異地調(diào)試控制方法、裝置和計(jì)算機(jī)設(shè)備
- 一種芯片調(diào)試系統(tǒng)及芯片調(diào)試方法





