代碼剖析(Code profiling)
程序員在優化軟件性能時要注意應盡量優化軟件中被頻繁調用的部分,這樣才能對程序進行有效優化。使用真實的數據,精確的分析應用程序在時間上的花費的行為就成為_代碼剖析_。現在幾乎所有的開發平台都支持代碼剖析,本文要介紹的是linux下針對c/c++的GNU的gprof代碼剖析工具。
PS:gprof不只能對c/c++,還可對Pascal和Fortran 77進行代碼剖析。
gprof
GNU gprof 是一款linux平台上的程序分析軟件(unix也有prof)。借助gprof可以獲得C/C++程序運行期間的統計數據,例如每個函數耗費的時間,函數被調用的次數以及各個函數相互之間的調用關系。gprof可以幫助我們找到程序運行的瓶頸,對占據大量CPU時間的函數進行調優。
PS:gprof統計的只是用戶態CPU的占用時間,不包括內核態的CPU時間。gprof對I/O瓶頸無能為力,耗時甚久的I/O操作很可能只占據極少的CPU時間。
如何使用gprof
gprof的使用很簡單,遵循以下步驟即可:
參考文檔:
1 https://fooyou.github.io/document/2015/07/22/performance-tools-for-linux-cplusplus.html