介紹下日常開發使用的分析工具,如有新的,請在評論中指出。
一. gprof,打印出程序運行中各個函數消耗的時間,可以幫助程序員找出衆多函數中耗時最多的函數。使用過程簡單,只需三個步驟。
- 使用-pg編譯、鏈接選項開啓分析功能。
- 執行程序,會在當前目錄生成gmon.out文件。
- 使用gprof處理gmon.out得到分析文件。
例子:
//使用-pg選項編譯、鏈接
gcc -o gprofTest gprofTest.c -pg
//執行程序會在本地生成gmon.out文件
./gprofTest
//使用gprof處理gmon.out文件得到分析文件
//gprof有一些參數選項,可以控制生成的分析文件格式。
gprof gprofTest gmon.out > analysis.txt
gprof得到的analysis.txt分析文件,從中可以看到程序耗時、函數耗時、函數調用關係、函數調用次數等信息。對於程序的優化幫助很大。
注意事項:
1. 系統調用函數無法監控。
2. 非-pg編譯的共享庫也無法監控。
二. 使用time命令,Linux提供time命令,可以得到程序執行的時間,包括總時間、用戶態時間以及系統調用時間。不過,得到的信息略顯粗糙,只提供一個大概的情況,對於具體的函數調用得不到分析。
參考連接。
1. GNU gprof
3. GProf去優化C+居然可以做到如此完美真是天一對難兄難弟
=============================================================================================
Linux應用程序、內核、驅動、後臺開發交流討論羣(745510310),感興趣的同學可以加羣討論、交流、資料查找等,前進的道路上,你不是一個人奧^_^。