troushoo

PerfView を用いて、アプリケーションの時間のかかっている処理を調査


概要

PerfView を用いて、アプリケーションの時間のかかっている処理を調査する方法を紹介します。

内容

PerfView とは
PerfView とは、Microsoft よりオープンソースで公開されているツールで、パフォーマンス調査に便利なツールです。
Microsoft のサイトから、フリーでダウンロード・使用することができます。

トレースの取得
まず、アプリケーションのトレースを取得する必要があります。

1. PerfView を起動します。

2. 「Collect」→「Collect」をクリックします。


3. 「Thread Time」にチェックを入れ、「Start Collection」をクリックします。


4. パフォーマンス調査を行いたいアプリケーションにて、事象を再現させます。

5. 「Stop Collection」をクリックします。


6. 「Working」が「Ready」に代わるまでまで待ちます。





トレースの解析
取得したトレースを解析します。

1. 「Thread Time (with StartStop Activities) Stacks」をダブルクリックします。


2. 調査対象のアプリケーションをダブルクリックします。


3. 「Inc %」が多いスレッドが、時間のかかっていたスレッドです。


4. 時間のかかっていたスレッドにチェックを入れ、展開してみます。
そして「Inc %」が多い行に順次チェックを入れ、展開していきます。
すると、調査対象のアプリ (blockedtime) が、.NET の API (mscorlib.ni の関数) を呼んでいるところにつきます。


5. .NET の API を読んでいるblockedtime の行を右クリックし、「Goto Source (Def)」をクリックします。


6. ソースコードが開き、どの部分で時間がかかっていたかがわかります。
以下のスクリーンショットの例では、File.ReadLines に時間がかかっていたことがわかります。



補足:今回用いたアプリケーション
今回用いたアプリケーションは、PerfView の作者のブログの「BlockedTime.zip」からダウンロードできます。

ビルドをするには、プロジェクトのプロパティの「デバッグ」の「作業ディレクトリ」を存在するディレクトに変更する必要があります。
ダウンロード直後は「C:\Users\vancem\Documents」となってます。


情報元
Tutorial 12 - Wall Clock Time Investigation Basics (英語)

関連記事
PerfView を用いてAPS.NET のパフォーマンス調査
  1. 2016/10/02(日) 23:20:40|
  2. ツール
  3. | トラックバック:0
  4. | コメント:0
<<以前開いたファイル、以前アクセスしたサーバー等を確認する方法 - AutomaticDestinations | ホーム | Message Analyzer を用いてパフォーマンスデータ (.blg) の調査>>

コメント

コメントの投稿


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

トラックバック

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

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

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

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

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