[發明專利]一種熱點程序的統計方法有效
| 申請號: | 201310415538.4 | 申請日: | 2013-09-12 |
| 公開(公告)號: | CN103473168A | 公開(公告)日: | 2013-12-25 |
| 發明(設計)人: | 朱浩;彭楚;應歡;王東輝;洪纓 | 申請(專利權)人: | 中國科學院聲學研究所 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34 |
| 代理公司: | 北京億騰知識產權代理事務所 11309 | 代理人: | 陳霽 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 熱點 程序 統計 方法 | ||
技術領域
本發明涉及程序性能分析技術,尤其涉及一種熱點程序的統計方法。
背景技術
程序運行時并非均衡的對每個函數、數組進行訪問,約80%的運行時間花在20%的代碼中。嵌入式平臺上的存儲資源有限,對熱點程序分布的統計是為了將訪問頻度較高的函數、數組盡可能存儲與訪問速度更快的片上存儲。
集成開發環境(Integrated?Development?Environment,IDE)是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。
現有的集成開發環境,如微軟的Visual?Studio系列等,它們運行的底層硬件平臺均提供了用于程序性能數據反饋的專用指令,并依托于編譯器對目標源程序進行代碼插樁(Code?Instrumentation),然后依托處理器硬件平臺的計算完成對熱點程序與數據的統計。
現有技術的熱點程序方法的不足之處在于:
1、依賴于處理器硬件平臺的支持;
2、不支持對語句塊執行時間的評估。
發明內容
本發明的目的是為了解決上述現有技術存在的不足之處,提供了一種實現簡單、便于跨平臺移植的熱點程序統計方法。
為實現上述目的,本發明提供了一種熱點程序的統計方法,該方法包括以下步驟:
對源文件進行偽指令插樁,所述偽指令作為源文件中各函數的第一條指令,所述偽指令為第一偽指令,所述第一偽指令的操作數代表了各函數對應計數器在數據段中的偏移量,所述數據段用于記錄各函數被訪問次數和/或各函數被執行的時間;
所述源文件經過編譯后輸出攜帶所述第一偽指令的目標文件,當執行所述第一偽指令時,根據所述第一偽指令中的操作數查找數據段中對應的全局計算器并加1,而在目標文件的返回指令中添加對各函數執行時間的記錄;
當目標文件運行完成時,根據數據段中存儲的數據獲取各函數被運行的次數。
本發明實現簡單、不依賴于硬件平臺、可完成對語句塊執行時間的評估。
附圖說明
圖1為本發明實施例定義的數據段.funcnt結構示意圖;
圖2(a)為本發明實施例提供的指令插樁流程圖;
圖2(b)為temp.def、映射表、funcnt.s文件格式;
圖3為本發明實施例提供的統計目標語句塊的執行比率的流程圖。
具體實施方式
下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
本發明實施例是在處理器模型的基礎上討論如何統計熱點程序的統計,所研究的內容并不僅局限于統計熱點函數,還提供了對代碼片段進行時間開銷評估的支持。評估函數被訪問次數以及總執行時間是用于評估目標函數是否為熱點的兩個標準。
本發明實施例通過將偽指令Cnt插入匯編代碼片段中來實現函數被訪問次數的統計。Cnt指令的語法格式如下:
語法格式:Cnt?Imm21(21位無符號數)
Cnt指令所用到的推斷寄存器默認為Pr0,即確定執行。Imm21為Operand的值,代表21位的無符號數。處理器內核模型的虛擬內存系統最大為4GB,因此,為了簡化對函數執行次數統計的難度,本發明實施例定義了一段占據足夠字節數的數據段.funcnt,每8個字節對應于一個函數,其中,前4字節代表目標函數被訪問的次數,后4字節代表函數執行的時間。盡管如此,程序設計中不能排除不同源文件中存在由static變量定義的相同函數名的可能,因此,.funcnt段中各全局計數器必須與文件名、函數名稱建立一對一的映射關系。具體過程如上所示,而Cnt指令語法格式中的Imm21代表了各函數對應計數器在.funcnt段中的偏移量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院聲學研究所,未經中國科學院聲學研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310415538.4/2.html,轉載請聲明來源鉆瓜專利網。





