?? vtune的基本使用方法(轉(zhuǎn)).txt
字號(hào):
VTune(TM) Performance Analyzer 是針對(duì)Intel芯片的一款性能分析軟件。安裝文件在喻信ftp/Diansoftware/Temp/Intel VTune目錄下。芯片是AMD的同學(xué)就不能用了:)
今天摸索著用了一下VTune,基本的用法還是比較簡單的,基本使用步驟如下:
(1)新建一個(gè)工程:File->new project,一般選Quick Performence Analysis Wizard就可以了。
(2)選擇要測(cè)試的程序,在彈出的對(duì)話框中有Application to Launch,填入Debug文件下的exe程序就行了。
(3)Run Activity:按工具欄上的綠色三角按鈕就行了。本來還有些配置可以配的,不過比較麻煩,一般的分析就算了。
(4)完了就會(huì)生成很多表,最麻煩的就是怎么看這些數(shù)據(jù)。左邊有這些數(shù)據(jù)的一個(gè)樹型列表,可以選擇看哪個(gè)統(tǒng)計(jì)表,中間就是相應(yīng)的圖表現(xiàn)實(shí),圖表下面還有一個(gè)Legend窗口,解釋圖表中的符號(hào)各是什么意思。下面簡單介紹一下這些圖表。
統(tǒng)計(jì)圖表分為兩部分:Sampling Result和Counter monitor Result,后面一個(gè)顧名思義
應(yīng)該是時(shí)鐘監(jiān)視結(jié)果,我沒怎么用,主要是前面一個(gè)。
Sampling Result又分為幾個(gè)表,Run1是一個(gè)總的表,可以看到Instruction Requied(執(zhí)行次數(shù))、Clockticks(消耗的時(shí)鐘時(shí)間)和CPI(每次執(zhí)行消耗的時(shí)鐘時(shí)間)的信息,這三個(gè)數(shù)據(jù)其實(shí)知道兩個(gè)另外一個(gè)就可以算出來的,不過都列出來看起來比較方便,Legend窗口中有個(gè)綠色箭頭可以選擇按哪一個(gè)指標(biāo)進(jìn)行排序。
這時(shí)在所有的程序中找到自己要測(cè)的那一個(gè),通常就是消耗時(shí)鐘時(shí)間最多的,不是的話看名字也找得到。雙擊它就可以看到更進(jìn)一步信息,這時(shí)上面的下拉菜單可以選擇按函數(shù)、文件等查看。我選的是按函數(shù)查看,比較容易定位熱點(diǎn)。
現(xiàn)在就可以根據(jù)占用的執(zhí)行時(shí)間定位一些比較“熱”的函數(shù),有的可能是執(zhí)行時(shí)間比較長的,有的可能是執(zhí)行次數(shù)比較多的。然后雙擊某個(gè)函數(shù),就可能看到它的源碼,這時(shí)右邊的列表中給出了一些指令的執(zhí)行次數(shù)和執(zhí)行時(shí)間。經(jīng)過分析又可以定位一些比較“熱”的指令。
接下來就是針對(duì)這些比較“熱”的函數(shù)和函數(shù)中比較“熱”的語句進(jìn)行優(yōu)化。
也可以單獨(dú)看Instruction Requied的表和Clockticks的表,這時(shí)表中就分別只有一項(xiàng)信息,我還是比價(jià)喜歡看Run1那個(gè)表:)
借助英特爾? VTune? 可視化性能分析器, 便可在應(yīng)用運(yùn)行時(shí)收集多項(xiàng)執(zhí)行標(biāo)準(zhǔn)。當(dāng)一系列計(jì)數(shù)器可用時(shí),有必要重點(diǎn)借助一個(gè)子集來使進(jìn)程易于管理。
從下面一系列原始數(shù)值和派生比率開始: 時(shí)鐘周期、退回的指令、每退回指令的時(shí)鐘周期、退回的微操作、每退回微操作的時(shí)鐘周期、浮點(diǎn)指令百分比。
通過比較線程前后的這些值,開始執(zhí)行線程應(yīng)用性能分析。
時(shí)鐘周期:
應(yīng)用的時(shí)鐘周期數(shù)量可出色替代執(zhí)行應(yīng)用所需的 CPU 時(shí)間。對(duì)于單一的線程運(yùn)行,乘以了時(shí)鐘速率的總時(shí)鐘周期即為應(yīng)用的總運(yùn)行時(shí)間。對(duì)于在支持多核或多線程技術(shù)的處理器上運(yùn)行的多線程應(yīng)用,時(shí)鐘周期處理級(jí)的量即為所有線程的時(shí)鐘周期總數(shù)。
退回的指令:
當(dāng)一個(gè)程序運(yùn)行時(shí),處理器執(zhí)行一系列指令,當(dāng)各個(gè)指令執(zhí)行完畢時(shí),所有指令便被退回。該標(biāo)準(zhǔn)報(bào)告了在執(zhí)行程序時(shí)退回的指令數(shù)量。
每退回指令的時(shí)鐘周期(CPI):
CPI 是時(shí)鐘周期與退回的指令之間的比值。是對(duì)處理器內(nèi)部資源利用率的測(cè)算。這個(gè)值越高,說明資源利用率越低。
退回的微操作:
各指令進(jìn)一步劃分為由處理器執(zhí)行的微操作。該標(biāo)準(zhǔn)報(bào)告了在執(zhí)行程序時(shí)退回的微操作數(shù)量。該數(shù)量始終大于退回指令的數(shù)量。
每微操作的時(shí)鐘周期
http://www.intelsoftware.com.cn/fenxiqi01.html
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -