kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studioのプロファイラーでプロファイル対象をフィルタする

Visual Studioのプロファイラを使えばアプリケーションの性能分析を行うことができます。

Visual Studioのプロファイラを使って性能評価を行う − @IT

プロファイリング ツールを使用したアプリケーション パフォーマンスの分析

小さいアプリケーションならともかく、大きなアプリケーションになると見るのも大変になります。特定の範囲のみプロファイルすることにより、見やすくすることができます。

f:id:kkamegawa:20140909052238p:plain

通常通りプロファイルを行います。ここでは呼び出しのインストルメンテーションを選択しています。これはWPFアプリケーションなのでパフォーマンスウィザードが使えますが、ストアアプリケーションの場合、パフォーマンスウィザードを使用することはできません。診断ハブの内容に従ってください。おおむねストアアプリケーションのほうがいろんな診断ができます。

f:id:kkamegawa:20140909052239p:plain

プログラムを選択します。

f:id:kkamegawa:20140909052240p:plain

通常通りプロファイルを行います。

f:id:kkamegawa:20140909052243p:plain

プロファイルを行った後、パフォーマンスエクスプローラーにターゲットが登録されます。ストアアプリを使っていない理由ですが、このターゲットはストアアプリでは出ないためです。

プロパティをクリックして、詳細を表示します。ここで追加インストルメンテーションオプションで/Include:名前空間.クラス名を指定します。*を指定するとワイルドカードも可能です。

f:id:kkamegawa:20140909052245p:plain

名前空間の調査方法ですが、Visual Studioツールを起動して、「開発者コマンドプロンプト」を起動します。もちろんほかのNative Toolsコマンドプロンプトなどでもかまいません。

f:id:kkamegawa:20140909052241p:plain

開発者コマンドプロンプトからvsinstrコマンドを実行します。

vsinstr /dumpfuncs アセンブリ名

するとこんな風に完全名が表示されます。

f:id:kkamegawa:20140909052242p:plain

この名前を/includeに指定してください。

f:id:kkamegawa:20140909052246p:plain

もう一度今度はパフォーマンスエクスプローラーから「プロファイルの開始」を実行します。

include指定前

f:id:kkamegawa:20140909052244p:plain

include指定後

f:id:kkamegawa:20140909052247p:plain

同様に除外する/excludeなんてオプションもあります。余計なインストルメンテーションを行わない/excludeのほうがいいかもしれません。

参考:VSInstr