Visual Studio 2010中的Profiler使用

來源:互聯網
上載者:User

標籤:profiler   自我心的   debug   performance   

Visual studio 2010 的Profiler是內建的效能工具, 利用它我們可以找出程式中的效能瓶頸,然後不斷最佳化不斷再測試。

簡介

Profiler有利用嚮導啟動程式和後期附加到程式兩種關聯被測模組的方式,測試方式也有兩種:Sampling(採樣)Instrumentation(檢測)

  • Sampling:按設定的時間間隔中斷電腦處理器並收集合函式呼叫堆疊。
    呼叫堆疊是一個動態結構,用於儲存有關正在處理器上執行的函數的資訊。這個分析方法形成的結果就是各個函數在運行時被採樣的次數,次數越大代表開銷越大。因為對被測源碼不需要更改,所以直接啟動或者後期附加到被測程式都可以。

  • Instrumentation:在被測源碼檔案中目標函數的開始和結尾以及這些函數對其他函數的每次調用前後插入代碼。
    插入的代碼記錄了以下資訊:

    1. 此收集事件與上一收集事件之間的間隔。
    2. 在此間隔內作業系統是否執行了操作。
      例如,作業系統可能讀寫磁碟,或者在目標線程與另一個進程中的另一個線程之間進行切換。

根據”Tools\Options\Performance Tools\“ 下‘Show time values as:’的預設設定為Milliseconds,我覺得採樣周期應該是毫秒級,也就是說報告中採樣次數可以約等於毫秒。

使用
  1. 用管理員啟動Visual Studio
  2. 針對Release版本的程式
  3. 設定好程式所需的pdb路徑

通過‘Analyze\Launch Performance Wizard…’ 或者‘Analyze\Profiler\Attach or Detach…’對被測程式進行建立Performance Session(效能會話), 我們主要介紹下Sampling通過Attach To Process的情況下報告的分析。
Profiler開始後,類似:

當你覺得已經收集了足夠的資訊可以停止後, 點擊‘Stop profiling’, 類似:

上述介面就是報告的Summary, 我們開始剖析器的效能瓶頸。

  • ‘Hot Path’指的就是採樣次數高的,也就是效能瓶頸的函數。

  • ‘Inclusive Samples’指的是該函數整體被採樣的次數,說白了,就是函數本身以及它所調用的所有子函數的總共開銷大小。

  • ‘Exclusive Samples’指的是該函數本身被採樣的次數,說白了,也就是函數自己的開銷大小,不包含它所調用的子函數的開始。

  • ‘Funcions Doding Most Individual Work’指的是開銷最大的單個函數,因此它的指標是用‘Exclusive
    Samples’來表示。

通過上述幾個介紹,我們就可以得到效能瓶頸的函數, 然後根據Call Tree可以得到完整的調用上下文。

例如,在Summary介面中點擊CallTree,按照‘Inclusive Samples’排序,按照開銷大小展開方法,最終就可以得到開銷大的函數上下文, 類似:

當然,我們也可以通過上面的過濾條件選擇”Modules“、”Threads“等方式來找到自己關心的瓶頸。
另外, 我們還可以在Summary介面選擇‘Show Just My Code’和適當的CPU時間段來過濾。

參考:Analyzing Application Performance by Using Profiling Tools

Visual Studio 2010中的Profiler使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.