軟件
- Visual Studio 2008
- VTune Amplifier XE 2011
tachyon_vtune_amp_xe
位於C:\Program Files (x86)\Intel\VTune Amplifier XE 2011\samples\en\tachyon_vtune_amp_xe.zip
HotSpots(熱點)的使用
- 設置find_hotspots爲啓動項目
1. 項目屬性要求
C/C++ -> General 要求如下
Linker -> Debugging -> General Debug Info 必須爲Yes
這樣的話,在Debug模式和Release都可以進行熱點分析
2. 點擊New Analysis
3. 創建熱點
4. Start 程序運行結束後
I. Summary
Summary主要分析的數據有:”Elapsed Time(經過的總時間)“、”Top Hotspots(高熱點部分)“、“CPU Usage Histogram(CPU使用直方圖)“和”Collection and Platform Info(收集信息和平臺信息)
Elapsed Time信息,主要有總線程數量、CPU時間(CPU運行程序所花費的總時間)
Top Hotspots信息,會列舉VTune分析的程序裏的活躍度最高(最耗時)的部分,例如:自旋鎖、函數等。
CPU Usage Histogram信息,顯示CPU使用直方圖。
Collection and Platform Info信息,包含了應用程序命令行、操作系統、CPU等信息。
Bottom-Up
主要用來關注哪個對CPU時間佔用最多
- 此處
initialize_2D_buffer
這個函數佔用的CPU時間最多 - 我們可以雙擊該條目, 進入到源代碼以及可以看到彙編碼
- 可以看到
mem_array
這裏的操作消耗的時間最多,我們可以雙擊該行代碼進入修改
- 可以發現此處代碼缺陷是,數組的填充不是按內存連續填充的
- 進行如下修改, 使內存連續填充
反而慢了一點。。按道理應該是會變快的
使用compare
- 通過比較,可以清楚改後,CPU的優化效果。