Vtune HotSpots(熱點)使用

軟件

  • 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的優化效果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章