1.Profile的作用
幫助你分析并發現程序運行的瓶頸,找到耗時所在,同時也能幫助你發現不會被執行的代碼。從而最終實現程序的優化。
2.Profile的組成
Profile包括3個命令行工具:PREP,PROFILE,PLIST?梢砸悦钚蟹绞竭\行Profile,其過程是:PREP讀取應用程序的可執行文件并生成一個.PBI文件和一個.PBT文件;PROFILE根據.PBI文件,實際運行并分析程序,生成.PBO輸出文件;PREP再根據.PBO文件和.PBT文件,生成新的.PBT文件;PLIST根據.PBT文件生成可閱讀的輸出。
3.IDE環境下Profile的使用
對于涉及函數分析的功能
<1>選擇Project->Settings->Link,選擇Enableprofiling復選框
<2>重建項目
<3>選擇Build->Profile,彈出Profile對話框
<4>做必要設置后,選擇OK,開始運行程序
對于涉及行分析的功能
<1>選擇Project->Settings->Link,選擇Enableprofiling復選框和Generatedebuginfo復選框
<2>選擇Project->Settings->C/C++,選擇LineNumbersOnly
<3>重建項目
<4>選擇Build->Profile,彈出Profile對話框
<5>做必要設置后,選擇OK,開始運行程序
4.Profile的具體功能實現
通過build/profile激活profile對話框
可以實現如下功能:
Functiontiming:對程序花費在執行特定函數上的時間進行評估。分析結果中,FuncTime一欄以秒為單位記錄了函數運行所花時間,下一欄顯示了該函數時間占總運行時間的百分比;Func+ChildTime欄記錄了函數及其所調用的子函數運行所花的總時間,下一欄顯示了前述時間占總運行時間的百分比;HitCount欄記錄函數被調用的次數;Function欄顯示函數的名稱。
Functioncoverage:記錄特定函數是否被調用,可以用來確定代碼中的未執行部分。分析結果列出所有被分析的函數,并使用*號標記執行過的函數。
Linecoverage:記錄代碼中的特定行是否被執行,可以用來確定代碼中的未執行部分。分析結果列出所有被分析的代碼行,并使用*號標記執行過的行。
Functioncounting:記錄程序調用特定函數的次數。在Profile對話框中選擇Custom,并在CustomeSettings中指定fcount.bat(位于VC98/bin目錄下)。需要注意的是,在指定fcount.bat所在目錄時,最好不要用長文件名的方式,這樣有可能出錯,比如要將c:ProgramFiles寫成c:Progra~1。
Linecounting:記錄程序所執行的代碼中特定行的次數。在Profile對話框中選擇Custom,并在CustomeSettings中指定lcount.bat(位于VC98/bin目錄下)。該功能使用.EXE中的調試信息啟動Profile,因此不需要.MAP文件。分析結果中,Line欄標示源代碼的行號,HitCount欄記錄該行執行次數,下一欄顯示了該行執行次數占所有代碼行執行次數的百分比,SourceLine顯示了對應的源代碼。
文章來源于領測軟件測試網 http://www.kjueaiud.com/