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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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:性能分析,找到軟件性能比較熱的部分,一般也就是性能瓶頸的關鍵點,幫助我們收集數據發現問題,至于Analyzer這個功能,有點大言不慚了,還得靠各位大家自己分析了,當然個人認為這一點會是Intel下一步強化該工具的重點。

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

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

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

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

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

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

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

1.    Intel Performance Analyzer

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

基本操作:

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

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

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

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

       

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

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

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

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

注意:

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

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

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

2.Intel Thread Checker

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

基本操作:

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

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

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

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

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

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

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

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

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

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

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

3.Intel Thread Profile

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

基本操作:

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

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

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

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

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

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

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

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

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

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

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


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>
            午夜精品影院在线观看| 欧美成人亚洲成人| 欧美激情偷拍| 亚洲国产欧美另类丝袜| 久久亚洲国产成人| 美女黄毛**国产精品啪啪| 欧美风情在线观看| 日韩一本二本av| 亚洲欧美日韩在线高清直播| 欧美中文字幕视频在线观看| 亚洲一区bb| 国产在线拍偷自揄拍精品| 国产精品入口福利| 激情成人av在线| 99riav国产精品| 久久国产精品网站| 91久久精品美女| 亚洲欧美一区二区三区极速播放| 午夜精品视频| 欧美激情一区二区三区成人| 国产精品手机在线| 亚洲三级影院| 久久久精品国产免大香伊| 亚洲激情在线视频| 欧美一区二区三区视频在线| 欧美粗暴jizz性欧美20| 国产欧美日韩免费| av不卡在线观看| 免费看av成人| 欧美一区二区视频在线| 欧美日韩国内自拍| 亚洲电影在线看| 久久精品青青大伊人av| 夜夜嗨av一区二区三区四区| 久久女同精品一区二区| 国产精品久久久一区二区| 亚洲精品一区二区三区不| 久久久噜噜噜久久久| 亚洲素人一区二区| 欧美激情精品久久久久久蜜臀| 国产精品一区毛片| 亚洲小视频在线| 亚洲毛片av在线| 欧美国产日韩一二三区| 在线日本高清免费不卡| 久久精品视频网| 亚洲一区欧美一区| 国产精品v欧美精品v日韩精品| 亚洲三级影院| 亚洲激情视频网| 欧美福利在线观看| 亚洲乱码精品一二三四区日韩在线| 久久一区二区视频| 欧美在线|欧美| 韩国亚洲精品| 麻豆成人在线播放| 久久久精彩视频| 在线成人中文字幕| 免费日韩成人| 欧美黄色成人网| 日韩一级在线| 一区二区不卡在线视频 午夜欧美不卡在| 免费av成人在线| 亚洲免费av电影| 一本色道婷婷久久欧美| 国产精品精品视频| 久久精品国产免费看久久精品| 亚洲一区在线观看视频 | 亚洲欧美伊人| 欧美日韩在线亚洲一区蜜芽| 日韩一级精品视频在线观看| 亚洲福利电影| 国产精品va在线播放我和闺蜜| 午夜精品福利一区二区三区av| 一区二区三区高清在线| 国产精品三区www17con| 久久精品视频在线播放| 久久精品一区二区三区不卡牛牛| 在线看片欧美| 亚洲精品国产精品国产自| 欧美三级韩国三级日本三斤| 欧美一区2区三区4区公司二百| 午夜在线不卡| 日韩午夜在线电影| 性欧美精品高清| 91久久久久久国产精品| 一区二区三区视频在线观看| 国产一区二区按摩在线观看| 亚洲高清视频在线观看| 国产精品美女在线| 亚洲成人资源网| 国产精品亚洲一区| 亚洲第一精品夜夜躁人人躁| 欧美午夜精品| 免费不卡在线视频| 欧美午夜女人视频在线| 美女任你摸久久| 国产精品久久久久久户外露出| 久久亚洲视频| 国产精品yjizz| 欧美成人亚洲成人日韩成人| 国产精品成人一区二区网站软件| 久久久亚洲人| 欧美性猛交xxxx乱大交退制版| 久热精品视频| 国产精品永久免费在线| 最新国产精品拍自在线播放| 国产视频精品免费播放| 亚洲精品中文字幕有码专区| 精品av久久久久电影| 亚洲综合成人婷婷小说| 亚洲免费av网站| 嫩草国产精品入口| 久久综合色影院| 国产欧美日韩在线播放| 一本色道久久综合亚洲精品小说| 在线看一区二区| 久久国产精品一区二区三区四区| 亚洲免费一级电影| 欧美日韩网站| 亚洲精品一区二区在线观看| 亚洲国产精品123| 久久久久国产免费免费| 久久高清国产| 国产日韩精品视频一区二区三区| 日韩视频在线你懂得| 亚洲乱码国产乱码精品精| 久久性天堂网| 欧美 日韩 国产在线| 一区二区三区在线视频免费观看 | 一区二区三区欧美| 性亚洲最疯狂xxxx高清| 久久激情五月激情| 久久久亚洲综合| 国产一区二区三区四区hd| 亚洲性图久久| 亚洲女同在线| 国产伦精品一区二区三| 亚洲在线成人精品| 久久gogo国模啪啪人体图| 国产精品私房写真福利视频| 亚洲午夜羞羞片| 久久精品国产99国产精品| 韩曰欧美视频免费观看| 久久精品国产999大香线蕉| 久久夜色精品国产欧美乱| 韩国女主播一区| 免费观看一级特黄欧美大片| 欧美风情在线观看| 夜色激情一区二区| 国产精品揄拍一区二区| 欧美亚洲免费| 欧美成人午夜| 亚洲性夜色噜噜噜7777| 国产农村妇女精品| 久久久精品一品道一区| 亚洲福利小视频| 亚洲一区二区久久| 国产一区二区三区av电影| 久久天堂精品| 99国产精品国产精品久久| 性欧美暴力猛交69hd| 黄色亚洲在线| 欧美激情中文字幕在线| 亚洲综合视频一区| 亚洲电影在线看| 欧美一区激情| 亚洲精品一级| 国产欧美大片| 欧美精品xxxxbbbb| 欧美中文字幕视频| 99国产精品99久久久久久粉嫩| 欧美一区国产在线| 日韩视频一区二区三区| 国产麻豆精品theporn| 免费成人av在线| 亚洲欧美精品suv| 亚洲国产精品久久久久婷婷老年| 亚洲欧美精品在线观看| 亚洲国产免费| 国产一区二区三区黄| 欧美日韩精品中文字幕| 久久经典综合| 亚洲免费视频在线观看| 亚洲日韩欧美视频| 久久久久久久久蜜桃| 亚洲私人影院在线观看| 亚洲第一主播视频| 国产乱码精品1区2区3区| 欧美日韩国产精品 | 国产精品va在线播放| 麻豆精品国产91久久久久久| 亚洲制服av| avtt综合网| 91久久综合| 亚洲国产91| 欧美黑人国产人伦爽爽爽| 久久精品国产亚洲一区二区三区| 亚洲一二区在线| aa成人免费视频|