利用上の注意
パフォーマンスプロファイラを利用する場合にはいくつか注意するべきポイントがあります。ここではそれらについて軽く解説しておきたいと思います。
実行までのポイント
パフォーマンス分析を行うまでにはいくつか決めるべきポイントがあります。1つ目はサンプルイベントとサンプリング間隔を決定することです。何はともあれ、どのイベントをもとにしてどの程度の間隔でデータを取得するかを決めることが最重要です。次にプロファイリング方法を決定することです。2つのプロファイリング方法を説明しましたが、インストルメンテーションではアプリケーションを実環境に近い状態で動かすという点に難があるため、通常はサンプリング方式を利用してプロファイリングを行います。サンプリング方式で問題点を発見することが難しかったり、ある特定のポイントに絞って詳細でより正確なデータを得る必要があったり、といった明確な理由ができた場合にインストルメンテーションを利用します。
.NETメモリプロファイリング割り当ての利用に関するポイント
本稿の方法(パフォーマンスウィザードを利用した方法)で作成されたパフォーマンス分析用の設定には、.NETメモリプロファイリング割り当てというものが設定されていません。これはマネージコードのメモリ使用量やインスタンス数などを把握するための機能ですが、利用するとその分だけオーバーヘッドが大きくなります。本稿執筆時点で最新の主流となっているPCを利用している場合にはさほど問題はないかもしれませんが、少し古いPCでは実行時間や実行後のレポート分析にかなりの時間を要する場合もあります。メモリ関連の重要な情報が得られるものですが利用の際には注意してください。
なお、.NETメモリ割り当てはパフォーマンスセクションを右クリックして[プロパティ]を選択(図18)すると表示されるダイアログから、[.NETメモリプロファイルコレクション]を選択することで設定できます(図19)。
その他のポイント
それ以外にいくつかあるポイントは簡単にまとめて紹介します
- リリースビルドを使用すること
- シンボルを利用すること
- インストルメントされたアセンブリを配布しない
- 負荷テストを先にやること
まとめ
今回は、パフォーマンスプロファイラを使用したアプリケーションパフォーマンスの分析と結果の確認方法を重点的に確認してきました。レポートの見方は少々難しいところがありますが、おのおのの役割やメインのタスクを理解できればアプリケーションのボトルネックを見つけるのに役に立つツールになるのではないでしょうか。
なお、Visual Studio Team Edition for Software Developersを使ってみようのシリーズは本稿で終了となります。単体テスト、FxCopによる静的コード分析と合わせ、VSTDにはさまざまな角度からアプリケーションの品質を高めるための機能が用意されています。これらの機能をぜひ活用して品質向上に役立ててみてください。