效能測試工具VTune的功能和用法介紹
1.VTune介紹
VTune視覺化效能分析器(Intel VTune Performance Analyzer)是一個用於分析和優化程式效能的工具,作為Intel為開發者提供的專門針對尋找軟硬體效能瓶頸的一款分析工具,它能確定程式的熱點(hotspot),找到導致效能不理想的原因,從而讓開發者據此對程式進行優化。
VTune效能分析器能通過以下的手段發現和定位程式中的效能問題:
- 從當前系統中收集效能資料;
- 從系統到原始碼不同的層次上,以不同的互動形式來組織和展示資料;
- 發現潛在的效能問題,並提出改進措施。
2.VTune的下載和安裝
VTune的下載和安裝比較繁瑣,下面簡單介紹VTune軟體的下載過程和在Linux環境下的安裝過程。
2.1 VTune的下載
VTune的正式版的價格很貴,可以選擇下載試用版——下載連結。下載試用版本需要註冊賬號,可以獲得31天的免費試用。註冊完成之後,註冊郵箱裡會收到一封郵件,其中包含軟體的下載連結和註冊碼。
點選郵箱裡的下載連結,選擇"Linux系統產品"並選擇自己想要下載的軟體版本號,本文件以"vtune_amplifier_xe_2013_update17.tar.gz"軟體版本號為例。
2.2 VTune的安裝
將下載的軟體安裝包移動到Linux系統上,解壓安裝包:
tar zxvf vtune_amplifier_xe_2013_update17.tar.gz
進入解壓後的資料夾,執行"install.sh"指令碼,全部按照預設設定,根據安裝嚮導安裝即可。
安裝完成後,需要先執行VTune安裝成功後得到的檔案:
source /home/…/intel/vtune_amplifier_xe_2017.1.0.486011/amplxe-vars.sh
如圖 2.1所示,使用"amplxe-gui"命令啟動VTune軟體。
圖 2.1 VTune啟動命令
3. VTune的使用
在Linux環境中,啟動VTune效能分析器,如圖 3.1所示,點選新建工程按鈕,新建一個性能分析工程。
圖 3.1 新建工程
如圖 3.2所示,選擇要分析的目標檔案,並填寫分析的檔案的執行引數。
圖 3.2 目標檔案選擇
如圖 3.3所示,選中目標工程,右擊,可以新建目標檔案的分析型別。
圖 3.3 新建分析型別
如圖 3.4所示,英特爾VTune效能分析器,可以分析的效能型別有:"Algorithm Analysis"、"Microarchitecture Analysis"、"Knights Corner Platform Analysis"和"Custom Analysis"四大類。
圖 3.4 VTune分析型別
如圖 3.5所示,"Algorithm Analysis(演算法分析)"是運用最廣泛的分析型別。它包含"Basic Hotspots(基礎熱點)"、"Advanced Hotspots(高階熱點)"、"Concurrency(併發)"和"Locks and Waits(資源鎖和等待)"四種子分析型別。下面詳細介紹"Basic Hotspots(基礎熱點)"的使用。
圖 3.5 演算法分析子類
4.(Basic Hotspots)基礎效能熱點分析
如圖 4.1所示,按照第3章節,選擇要分析的目標程式,選擇演算法分析裡的基礎效能熱點分析。設定CPU的取樣間隔時間,點選右上角的"Start"按鈕開始分析目標程式。
圖 4.1 基礎效能分析的建立(Basic Hotspots)
如圖 4.2所示,點選開始分析資料後,VTune就開始執行目標程式,並收集相關的效能資料,當收集完成之後,需要手動停止資料的收集。
圖 4.2 停止收集資料(Basic Hotspots)
如圖 4.3所示,停止資料分析後,可以獲得8類資料,分別為"Analysis Target"、"Analysis Type"、"Collection Log"、"Summary"、"Bottom-up"、"Caller/Callee"、"Top-down Tree"和"Tasks and Frames"。其中"Analysis Target"、"Analysis Type"和"Collection Log"三類資料,不做過多分析。主要分析其他幾類資料所包含的內容。
圖 4.3 收集的資料分類(Basic Hotspots)
4.1 Summary
如圖 4.4所示,Summary主要分析的資料有:"Elapsed Time(經過的總時間)"、"Top Hotspots(高熱點部分)"、"CPU Usage Histogram(CPU使用直方圖)"和"Collection and Platform Info(收集資訊和平臺資訊)"。
圖 4.4 Summary的資料展示(Basic Hotspots)
如圖 4.5所示,Elapsed Time資訊,主要有匯流排程數量、開銷時間(花費在同步和執行緒庫函式的時間)、自旋時間(CPU等待其它同步資源處理的自旋等待時間)、CPU時間(CPU執行程式所花費的總時間)和暫停時間。
圖 4.5 Elapsed Time(Basic Hotspots)
如圖 4.6所示,Top Hotspots資訊,會列舉VTune分析的程式裡的活躍度最高(最耗時)的部分,例如:自旋鎖、函式等。
圖 4.6 Top Hotspots(Basic Hotspots)
如圖 4.7所示,CPU Usage Histogram資訊,顯示CPU使用直方圖。
圖 4.7 CPU Usage Histogram(Basic Hotspots)
如圖 4.8所示,Collection and Platform Info資訊,包含了應用程式命令列、作業系統、CPU等資訊。
圖 4.8 Collection and Platform info(Basic Hotspots)
4.2 Bottom-up
如圖 4.9所示,Bottom-up可以檢視函式/模組/執行緒呼叫時間的耗費,主要分析的資料有:程序、執行緒、模組、函式和呼叫的堆疊資訊。可以顯示程式的程序、執行緒號,函式的開始地址,CPU開銷時間,CPU自旋時間等資訊。
圖 4.9 Bottom-up(Basic Hotspots)
4.3 Caller/Callee
如圖 4.10所示,Caller/Callee主要分析的資料有:CPU總利用時間、各個函式自我利用時間、各個函式的自我開銷時間、各個函式的呼叫者和被呼叫者等。
圖 4.10 Caller/Callee(Basic Hotspots)
4.4 Top-down Tree
如圖 4.11所示,Top-down Tree是以樹形結構展示每個呼叫所花費的時間及佔比,可以從時間花費最多的地方往下一層一層的展開,找到關鍵函式分析其效能。其分析的內容和Caller/Callee基本相同。
圖 4.11 Top-down Tree(Basic Hotspots)
4.5 Tasks and Frames
如圖 4.12所示,Tasks and Frames主要以直方圖的形式詳細展示了程式的分析時間、CPU使用時間以及程序和各個執行緒的執行時間。
圖 4.12 Tasks and Frames(Basic Hotspots)
5. 總結
VTune可以幫助使用者定位程式中的"熱點",所謂的"熱點"就是程式中花費執行時間最長的程式碼段。VTune效能分析器能夠收集應用程式和系統上的效能資料,然後以圖形和表格的形式顯示出來。從這些顯示的資料中,使用者能夠分析應用程式的效能,從而知道程式中哪個部分執行的慢,為什麼執行的慢。
6. 免責宣告
內部交流文件,若發現相關錯誤或者建議,請及時聯絡文件建立者進行修訂和更新。