青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

VTune工具使用心得

轉載自:http://hi.baidu.com/luguowei/blog/item/b19568e796feca2db93820c9.html/cmtid/4d3dd7f809696c01d9f9fdc9

0.     概述

VTuneIntel一個比較強大的性能分析軟件。主要包括三個小工具:

1Performance Analyzer:性能分析,找到軟件性能比較熱的部分,一般也就是性能瓶頸的關鍵點,幫助我們收集數(shù)據(jù)發(fā)現(xiàn)問題,至于Analyzer這個功能,有點大言不慚了,還得靠各位大家自己分析了,當然個人認為這一點會是Intel下一步強化該工具的重點。

2Intel Threading Checker用于查找線程錯誤能夠檢測資源競爭、線程死鎖等問題大家程序在并行化后,可以通過Threading Checker 檢測一下有沒有多線程相關的錯誤。

3Intel Threading Profiler:線程性能檢測工具,多線程化有可能會有負載比平衡同步開銷過大等等線程相關的性能問題。該工具可以幫你發(fā)現(xiàn)每一個線程每一時刻的狀態(tài)。

可以簡單認為該工具是如下的使用順序:(發(fā)現(xiàn)可以多線程的代碼瓶頸)---進行并行等編碼階段---(發(fā)現(xiàn)多線程中錯誤部分)---改正代碼bug階段---(發(fā)現(xiàn)多線程中有待提高的瓶頸部分)---優(yōu)化代碼性能階段。可以看出這套軟件針對代碼并行的實現(xiàn)有點服務到家的感覺,核心思想就是:找茬

另外推薦一個配套的工具,就是Intel C++ 編譯器,可以集成到VS2005或者命令行下,配套使用應該會一些更好的效果,傳說中對Intel C++ 編譯器好像都是贊不絕口的,而且都是自家的東西,Intel肯定不會虧待它的。

還有一個網(wǎng)上推薦的東西,直接粘貼過來,沒有了解過,不好多加評論: Intel MKL 函數(shù)庫,提供了VML 函數(shù)這些函數(shù)可以對超越函數(shù)(sin, cos, exp, log)進行優(yōu)化。

此外友情提示一下,如果你使用的是AMDCPU芯片,并一心決定以后繼續(xù)使用它的話,建議同學你就不用往下看了,理由就不告訴你了^_^

本文章主要是對VTune的一個初級使用的心得總結,有什么不對的大家多扔板磚,算是一個拋磚引玉的作用吧,歡迎大家一起總結完善!

1.    Intel Performance Analyzer

對于該工具使用比較簡單,不過直接說一下,軟件名稱是性能分析,實際上只是對軟件操作進行時間上的總結和統(tǒng)計,用戶自己需要根據(jù)數(shù)據(jù)進行分析,總體來說,該性能分析工具同IBM的性能分析工具大致一樣,個人認為還不如IBM的好用的,呵呵。

基本操作:

1)新建一個工程:File->new project,一般選Quick Performence Analysis Wizard就可以了。

2)選擇要測試的程序,在彈出的對話框中有Application to Launch,填入Debug文件下的exe程序就行了。

3Run Activity:按工具欄上的綠色三角按鈕就行了,一般會自動運行程序,這時你執(zhí)行你想要的操作。本來還有些配置可以配的,不過比較麻煩,一般的分析就算了。

4)完了就會生成很多表,最麻煩的就是怎么看這些數(shù)據(jù)。左邊有這些數(shù)據(jù)的一個樹型列表,可以選擇看哪個統(tǒng)計表,中間就是相應的圖表現(xiàn)實,圖表下面還有一個Legend窗口,解釋圖表中的符號各是什么意思。

       

上圖為分析的主界面。對于分析圖表的結果,看上去比較多,其實真正有用的就一個(個人看法),首先出現(xiàn)的就是一個框架的分析結果,有一個柱狀圖來體現(xiàn)各種dll和進程的時間占用統(tǒng)計,當鼠標在每一個柱子上停留,ToolKit會顯示該進程的平均執(zhí)行時間和執(zhí)行的次數(shù),右側Summary概述該進程下占用的比例等統(tǒng)計,下面的legend說明機器的配置和一些名次解釋。

選擇進入相應的進程,則看到對應進程中各個函數(shù)的對應信息,在此不再詳細說明。這時通過統(tǒng)計圖可以發(fā)現(xiàn)程序性能主要的花費部分,這時就要運用你對代碼的了解和分析、經(jīng)驗發(fā)現(xiàn)性能提升的地方,也就是你的性能最應該和最顯著提高,這時點擊你關系的函數(shù),如果你有該函數(shù)的實現(xiàn)文件(cpp),則可以結合Source File進行一些簡單的分析,這里可以給你提供源代碼和匯編碼兩種方式來進行體現(xiàn),供大家選擇。在Sampling Results中提供該進程下各個函數(shù)的時間統(tǒng)計,定位到每一個執(zhí)行函數(shù)上(通常就是消耗時鐘時間最多的,即關鍵代碼)。如圖所示:

比如上面這個分析結果,該函數(shù)是對圖片像素進行優(yōu)化分類、分割處理、生成結果的功能,具有大量的數(shù)字運算和循環(huán),這也是我們最應該和最有效采用多線程等手段提升效率的部分。源碼右邊的列表中給出了一些指令的執(zhí)行次數(shù)和執(zhí)行時間。經(jīng)過分析又可以定位一些比較重點改進的指令。

總結此工具,和IBM的性能分析工具作用大致相同(個人感覺還是推薦IBM的,其實都差不多,主要是先入為主了,而且圖形界面比較直觀),該工具的Call Graph選項也和IBM那樣支持圖形分析,但是我在機子上運行會崩潰,不知道為什么。該工具只是將分析的數(shù)據(jù)呈現(xiàn)給我們,而分析的過程還要依靠大家。另外,在源碼上點擊會出現(xiàn)一個窗口,顯示該行執(zhí)行的次數(shù)等一些分析結果,不過我這個版本該功能還是很弱的,近似于沒有用處,可能會在下面的版本有所提升。

注意:

1)該軟件支持Linux系統(tǒng),如果分析的軟件屬于跨平臺產(chǎn)品,可以根據(jù)各自情況查看是否有必要也同事在Linux下分析,個人認為我們的軟件沒有太大必要,完全可以在Windows下分析,發(fā)現(xiàn)問題進行改進,此功能主要針對只運行在Linux平臺下的軟件的,所以沒有進行研究。

2)該軟件支持遠程模式,沒有發(fā)現(xiàn)我們的軟件是否有此功能的必要性,沒有進行過多研究,只是發(fā)現(xiàn)一個帖子知道如何遠程,會在附錄中添加上。

3)使用VTune GUI去收集數(shù)據(jù)可能VTune本身開銷會影響分析結果,所以VTune提供命令行的分析模式,基本語法在附件中,個人認為現(xiàn)在我們在圖形界面下進行分析也會有很大收獲,考慮到時間成本也沒有進行過多研究。

2.Intel Thread Checker

非常不錯的一個工具,如果你用過上面性能分析的工具,這個上手也是比較容易的,界面和使用風格上保持一致,簡單說這個工具也是對加鎖解鎖的數(shù)據(jù)收集和對死鎖的檢測,將程序運行中發(fā)生的所有邏輯關系(讀寫操作)和認為死鎖現(xiàn)象(時間過長)體現(xiàn)給程序員,讓大家進行分析這些可能會導致deadlockdata races等問題。

基本操作:

1  New Project,在 New Project 對話框中,在 Category 下拉框里選擇 Threading Wizards ,在下面的 List View 中選擇 Intel? Thread Checker Wizard ,然后 OK 

2 選擇你想要檢測的程序,一定是Debug的,可以查看源代碼,這個應該不是什么要求。

3 Run Activity:按工具欄上的綠色三角按鈕就行了,一般會自動運行程序,這時你執(zhí)行你想要的操作。另外,對于死鎖問題,可以設定時間,在Configure---Options---Cpllector--- Synchronization中進行設定,來定義你認為作為死鎖的最小時間設定。

4 運行結束后生成很多表,然后就是我們自己分析了。

下面就簡要說明一下這些表的作用和一些個人的使用心得:

上圖是運行程序后生成的主界面(Diagnostics),以及源碼界面(Source View),這里最有用的信息主要是Short DescptionDescption這兩個列表內容,第一個表主要是對該操作可能導致的并行問題的歸類,比如data racedeadlock等,如果對此類錯誤不是很理解,可以點擊右鍵在菜單中查看Diagnostics Help,會對此類型錯誤進行一個概括的介紹,如下圖所示(介紹讀寫資源競爭):

如上是我在多線程程序中的一個數(shù)據(jù)競爭的現(xiàn)象的幫助文檔說明,其邏輯關系是Read該數(shù)據(jù)后Write該數(shù)據(jù),這種情況則可能會導致Data Race的問題,這在點上,Thread Checker則會把程序運行中的各種出現(xiàn)的邏輯情況都羅列并定位到代碼所在行。

上圖是我在程序中的一個死鎖問題的幫助文檔的說明,給出可能的死鎖原因,正是我在程序中用到了WaitForSingleObject()函數(shù),導致了線程函數(shù)和進程條死鎖的產(chǎn)生。同時可以定位到死鎖線程的源代碼,這時候,就需要我們仔細研究死鎖的原因了。下圖是我查看死鎖詳細描述定位到源代碼的界面(可見高亮顯示的兩個部分正是導致我線程死鎖的原因:創(chuàng)建后等待該線程,而此時線程調用MFC進程條,而進程條又在等該線程):

對于Descption中的內容,則會闡述這個問題的具體內容,可以定位到具體代碼行,雙擊可以切換到代碼,這時大家可以分析這行代碼了,所示重點懷疑對象了,當然案件的真相和真兇則需要各位“偵探”來判斷啦。

以上是我對Data racedeadlock的兩個問題程序進行的簡單的分析報告,根據(jù)Intel對該工具的介紹和相關資料,該工具主要就是針對這兩種情況進行分析。一般并行運算主要就是這兩種問題啦。(看資料應該可以做出這個判斷)

總體來說該工具最有用的就是如上的兩個表的數(shù)據(jù)分析啦,當然還有另外兩個表,一個是Stack Traces,這個主要是對堆棧跟蹤,可以發(fā)現(xiàn)該程序堆棧,看一下一共創(chuàng)建了多少個線程之類的信息。另外一個則是圖表統(tǒng)計,統(tǒng)計檢測到的問題的一個堆疊柱狀圖。感覺用處不大。下圖是堆棧跟蹤圖:

3.Intel Thread Profile

正如Intelflash演示中介紹的那樣,這款工具的作用就是:improved thread application performance.當然坦白的說,要想讓工具自動實現(xiàn)這點不像說的那么簡單,準確來說,它的作用應該是幫助我們提高線程應用的性能,重點在“幫助”上。相對以上兩個工具的作用和定位,感覺這款工具目前的功能和它自身的定位還是有一些差距的,沒有很多像上面兩個工具提供一些分析的作用,而只是對代碼多線程的一個統(tǒng)計和圖形的直觀顯示,畢竟,要想讓工具自己找到優(yōu)化方案是有點強人所難的。還有感覺網(wǎng)上對這款工具的使用介紹也不是很多,幾乎沒有,感覺不想上面兩款軟件應用的廣泛或者大家的代碼還沒有達到這一階段的要求吧。操作方法還是保持的一致風格,不用培訓,直接上手。

基本操作:

1 選擇你想要優(yōu)化的程序,Debug版本可以調試到源代碼。在這點上程序支持普通模式(支持Windows API等)和OpenMP專有兩個模式。這里選擇第一個了,第二個不會用啊。

2 Configure中可以配置一些選項,查看該優(yōu)化程序的Dependence等,推薦還是默認吧,個人認為足夠我們用的了。

3 點擊Finish運行你的程序,運行你的多線程程序吧,然后在運行你需要檢測的程序功能后點擊結束。       

4 這時候則會生成一系列表格圖形讓大家分析。

         下面我來簡單介紹一下主要表的功能吧,都是一些很基本的方法,剛剛上手,這個工具的使用教程網(wǎng)上不多,還沒有研究很深入,需要以后在多線程開發(fā)中學以致用才是關鍵。

     TimeLine表:顧名思義就是時間線的統(tǒng)計,如下表所示,在這個表中,統(tǒng)計了所有線程按照時間軸的狀態(tài):

         上圖所示,在這個程序中,我創(chuàng)建了三個顯示,在加上主線程,一共四個,在這個時間軸中顯示了這四個線程從生到死的每一個瞬間,對于這些顏色,在右側會有說明,比較重要的比如綠色代表活動狀態(tài),淺綠代表等待。橙色代表至少一個線程運行,灰色表示沒有此時沒有線程在運行。這樣大家可以很清楚的看到每一個線程的全部狀態(tài),算是得到了程序線程運行的最直接、最表面的第一手資料了。當然秉承的VTune的一慣風格,雙擊可以跟蹤到源代碼哦(如果你有的話)。

         Profile Filter表:對線程各種狀態(tài)的一個歸類,對此還不是很熟悉,是對時間表的各種狀態(tài)的一個統(tǒng)計直方圖,如下表所示:

         上圖是對剛才那個時間表中各種線程各種狀態(tài)花費時間一個統(tǒng)計圖對比,灰色的是非活躍階段,橙色則是有一個線程活動的時間,統(tǒng)計出各個狀態(tài)的一個百分比。可以看出上面有許多不同的顯示方式,沒有太多研究,應該是按照不同的分類方式來對下面時間表的一個體現(xiàn),大家可以按照自己的愛好去選擇吧。

         另外還有一個Summary表格,是對整個程序運行的一個統(tǒng)計,在這個表格中數(shù)據(jù)要比圖表詳細很多,畢竟圖表只是一個通過圖形將一個重點數(shù)據(jù)更加直觀的表現(xiàn),信息量相對數(shù)據(jù)來說要小很多,在這個摘要中,創(chuàng)建線程數(shù),狀態(tài)都統(tǒng)計成表格,圖像如下:

         總體來說,我對這個工具研究的時間不是很多,也不是很了解,只是入門了,以后用到的時候在發(fā)揮啦,呵呵。這款軟件就是將各個線程狀態(tài)進行一個統(tǒng)計和時間表現(xiàn)給大家,大家可以發(fā)現(xiàn)在某一時間多線程性能可能會有不盡如意的地方或還有很多提升空間,這樣大家可以抓住本質,重點來最有效的優(yōu)化我們的并行程序。


posted on 2010-09-21 02:15 楊粼波 閱讀(4690) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美999| 亚洲欧美激情精品一区二区| 噜噜爱69成人精品| 久久久久久久国产| 1024成人| 99国产麻豆精品| 欧美亚州一区二区三区| 久久久精品日韩| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲免费在线观看| 国产一区三区三区| 亚洲国产精品福利| 国产精品久久久久99| 久久国产一区| 免费日韩av电影| 亚洲综合色噜噜狠狠| 久久精品二区亚洲w码| 亚洲片在线观看| 午夜精品999| 亚洲精品日韩激情在线电影| 一区二区三区欧美亚洲| 在线观看亚洲精品| 亚洲视频你懂的| 在线欧美亚洲| 午夜精品婷婷| 一区二区免费在线观看| 久久久久欧美精品| 欧美肥婆在线| 久久成人免费日本黄色| 欧美电影免费观看高清| 午夜亚洲视频| 欧美精品久久一区| 久久深夜福利免费观看| 欧美日韩色婷婷| 亚洲第一在线| 一区二区三区在线观看欧美| 一区二区三区免费网站| 亚洲欧洲一区二区三区久久| 欧美中文日韩| 欧美在线观看一区| 欧美亚洲成人网| 亚洲精品日韩欧美| 亚洲美女在线视频| 蜜桃精品久久久久久久免费影院| 久久本道综合色狠狠五月| 欧美日韩一区二区三区视频| 乱码第一页成人| 国产亚洲欧美激情| 午夜精品福利一区二区蜜股av| 宅男噜噜噜66国产日韩在线观看| 欧美成人精品三级在线观看| 久久综合九色九九| 国产一区二区三区四区三区四 | 欧美国产精品| 亚洲福利视频二区| 另类天堂av| 欧美大片免费观看| 亚洲高清在线观看| 欧美成人国产| 91久久久久久久久久久久久| 亚洲国产欧美精品| 欧美大片免费看| 亚洲人成高清| 亚洲伊人网站| 国产精品视频区| 亚洲欧美日韩中文播放| 欧美一区在线视频| 国产一区二区三区免费在线观看| 欧美一区成人| 欧美高清一区| 一本色道久久综合亚洲精品按摩 | 亚洲欧美日韩在线| 久久成人免费电影| 一区二区在线观看视频| 久久精品国产在热久久 | 中日韩男男gay无套| 国产精品成av人在线视午夜片| 一区二区三区导航| 欧美资源在线观看| 韩国自拍一区| 欧美成人资源| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美亚洲一区在线| 在线日韩成人| 欧美日韩国产成人在线免费| 正在播放亚洲一区| 久久婷婷亚洲| 亚洲无吗在线| 韩日欧美一区二区| 欧美精品综合| 欧美影院久久久| 伊人久久av导航| 国产精品99久久99久久久二8 | 国产日韩欧美一区| 理论片一区二区在线| 亚洲美女在线一区| 久久九九久久九九| 夜夜爽www精品| 国产资源精品在线观看| 欧美激情在线免费观看| 亚洲欧美精品一区| 亚洲第一成人在线| 久久精品一级爱片| 一区二区三区四区五区视频 | 国产精品美女久久久久久2018 | 亚洲欧美激情视频| 亚洲电影免费| 久久久精品国产99久久精品芒果| 亚洲精品一区在线观看| 国内精品久久久| 欧美日韩午夜在线| 老鸭窝91久久精品色噜噜导演| 亚洲视频国产视频| 亚洲经典在线| 美女日韩欧美| 久久精品国产第一区二区三区| 在线亚洲观看| 亚洲激情第一页| 激情91久久| 国产午夜精品一区二区三区视频 | 亚洲伦理中文字幕| 亚洲第一精品影视| 黄色免费成人| 国产偷国产偷亚洲高清97cao| 欧美日韩黄色大片| 国产精品久久精品日日| 欧美人与性动交a欧美精品| 久久免费99精品久久久久久| 中日韩美女免费视频网站在线观看| 欧美韩日一区二区| 免费一级欧美片在线播放| 久久国产成人| 欧美永久精品| 久久精品二区三区| 欧美在线黄色| 欧美伊久线香蕉线新在线| 午夜精品久久久久久| 亚洲欧美三级在线| 亚洲欧美日韩综合aⅴ视频| 亚洲亚洲精品在线观看 | 国产亚洲欧美日韩日本| 国产精品你懂的在线| 国产精品国内视频| 国产精品久久一区主播| 国产精品日日摸夜夜摸av| 国产精品影院在线观看| 国产片一区二区| 国产在线精品自拍| 在线观看一区视频| 91久久夜色精品国产九色| 亚洲精品少妇30p| 一本大道久久a久久精二百| 一区二区精品国产| 性欧美暴力猛交另类hd| 久久国内精品自在自线400部| 久久精品一区蜜桃臀影院| 久热精品视频在线观看| 欧美激情中文不卡| 久久综合久色欧美综合狠狠| 亚洲国产成人在线| 99re8这里有精品热视频免费 | 欧美另类久久久品| 欧美视频中文字幕在线| 国产精品久久亚洲7777| 国产在线精品一区二区夜色| 亚洲国产精品99久久久久久久久| 亚洲精品国产系列| 午夜精品www| 免费影视亚洲| 一区二区精品在线| 久久国产精品一区二区三区四区| 你懂的亚洲视频| 国产精品成人在线| 黄色成人免费观看| 在线综合欧美| 免费看的黄色欧美网站| 99热这里只有精品8| 久久精品国产久精国产思思| 欧美精品国产精品| 国产日韩精品一区二区三区在线| 亚洲人成网在线播放| 久久本道综合色狠狠五月| 亚洲人成网站999久久久综合| 亚洲午夜国产一区99re久久| 久色成人在线| 国产亚洲欧洲| 亚洲欧美色婷婷| 亚洲人成绝费网站色www| 久久精品导航| 国产精品国产三级欧美二区| 亚洲国产第一| 久久亚洲春色中文字幕久久久| 亚洲美女毛片| 你懂的国产精品永久在线| 国产一区二区成人久久免费影院| 亚洲亚洲精品三区日韩精品在线视频| 免费成人高清在线视频| 欧美在线综合| 国产欧美一区二区视频| 亚洲欧美激情一区|