troushoo

PerfView:パフォーマンス調査時に便利なMicrosoft 公開のフリーツール

概要

Microsoft より提供されているフリーツールであるPerfView を紹介します。
パフォーマンスのトラブルシューティング時に使用できるツールです。

内容

PerfView とは
PerfView とはMicrosoft よりフリーで公開されているツールで、パフォーマンス問題の調査に使えます。

ダウンロード・インストール
1. PerfView を、Microsoft のサイトよりダウンロードします。


2. インストール作業は必要ありません。回答したZip ファイルの中にあるPerfView.exe がPerfView です。

基本的な使い方
ここでは、基本的な使い方として、CPU 高負荷の原因調査の方法を紹介します。

0. タスク マネージャー等で、CPU が高負荷になっていることを確認します。
ここでは、MyTest が高負荷になっていました。


1. PerfView を起動します。


2. パフォーマンス情報を取得します。
2.1. “Collect” → “Collect” をクリックします。


2.2. “Start Collection” でパフォーマンス情報の取得を開始します。


2.3. “Stop Collection” でパフォーマンス情報の取得を終了します。


3. 取得したパフォーマンス情報を解析します。
3.1. PerfView の画面にできた“CPU Stacks” をダブルクリックします。


3.2. 一番”CPU MSec”が高い(= CPU 負荷が高い)行をダブルクリックします。


3.3. Metric/Interval の部分を確認します。
この値がが1 に近ければCPU 1コアを使いきっているという意味で、実際にCPU 負荷が高かったことがわかります。


3.4. “By Name” のタブで一番CPU 負荷が高いメソッドを確認します。
一番数字の大きいものがCPU 負荷の高いメソッドです。
ここでは、”MyTest!MyTest.MyClass.MyFunc()” であることがわかります。
206-10     

3.5. この情報を元にソースコードを見てみます。
確かに”MyTest!MyTest.MyClass.MyFunc()” は負荷の高いメソッドであることがわかりました。
今回用いたC# のソースコードは以下です。

namespace MyTest
{
class Program
{
static void Main(string[] args)
{
MyClass mc = new MyClass();
mc.MyFunc();
}
}

class MyClass
{
public void MyFunc()
{
//CPU 負荷の高い処理
int l1 = 1; int l2 = 2; int l3;
for (; ; )
{
l3 = l1 * l2; l1 = l2 * l3; l2 = l2 + l3;
}
}
}
}


情報元
Defrag Tools #113 - PerfView Part 1
Defrag Tools #114 - PerfView Part 2

関連記事
ブート時・シャットダウン時のパフォーマンス調査 : WPR・WPA


  1. 2014/11/20(木) 22:32:47|
  2. ツール
  3. | トラックバック:0
  4. | コメント:0
<<ProcDump を使った、Azure Web サイトのダンプ取得方法 | ホーム | コマンド入力にフォーカスを移動するWinDbg の便利なショートカットキー:Alt + 1>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/206-2c806067
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (24)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する