SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 2005 Team Edition for Software Developersを使ってみよう

VSTDのパフォーマンスプロファイラで、アプリケーションのボトルネックを検出しよう

Visual Studio 2005 Team Edition for Software Developersを使ってみよう (3)


  • X ポスト
  • このエントリーをはてなブックマークに追加

利用上の注意

 パフォーマンスプロファイラを利用する場合にはいくつか注意するべきポイントがあります。ここではそれらについて軽く解説しておきたいと思います。

実行までのポイント

 パフォーマンス分析を行うまでにはいくつか決めるべきポイントがあります。1つ目はサンプルイベントとサンプリング間隔を決定することです。何はともあれ、どのイベントをもとにしてどの程度の間隔でデータを取得するかを決めることが最重要です。次にプロファイリング方法を決定することです。2つのプロファイリング方法を説明しましたが、インストルメンテーションではアプリケーションを実環境に近い状態で動かすという点に難があるため、通常はサンプリング方式を利用してプロファイリングを行います。サンプリング方式で問題点を発見することが難しかったり、ある特定のポイントに絞って詳細でより正確なデータを得る必要があったり、といった明確な理由ができた場合にインストルメンテーションを利用します。

.NETメモリプロファイリング割り当ての利用に関するポイント

 本稿の方法(パフォーマンスウィザードを利用した方法)で作成されたパフォーマンス分析用の設定には、.NETメモリプロファイリング割り当てというものが設定されていません。これはマネージコードのメモリ使用量やインスタンス数などを把握するための機能ですが、利用するとその分だけオーバーヘッドが大きくなります。本稿執筆時点で最新の主流となっているPCを利用している場合にはさほど問題はないかもしれませんが、少し古いPCでは実行時間や実行後のレポート分析にかなりの時間を要する場合もあります。メモリ関連の重要な情報が得られるものですが利用の際には注意してください。

 なお、.NETメモリ割り当てはパフォーマンスセクションを右クリックして[プロパティ]を選択(図18)すると表示されるダイアログから、[.NETメモリプロファイルコレクション]を選択することで設定できます(図19)。

図22:パフォーマンスエクスプローラのプロパティの選択
図22:パフォーマンスエクスプローラのプロパティの選択
図23:.NETメモリプロファイリング割り当ての設定
図23:.NETメモリプロファイリング割り当ての設定

その他のポイント

 それ以外にいくつかあるポイントは簡単にまとめて紹介します

  • リリースビルドを使用すること
  • パフォーマンス分析を行う場合には対象アセンブリはリリースビルドを利用してください。デバッグビルドではボトルネック箇所が正確に特定できない可能性があります。
     
  • シンボルを利用すること
  • アセンブリはリリースビルドの必要がありますが通常デバッグビルド時に生成されるシンボル情報を一緒に利用するようにしてください。シンボルを利用することでより詳細な情報を同時に取得できるようになります。
     
  • インストルメントされたアセンブリを配布しない
  • インストルメンテーションによるパフォーマンス分析を行うとアセンブリにプローブが追加されることを説明しました。誤ってこのファイルを配布してしまうと実環境での実行に問題を起こしますので間違って配布しないように注意してください。
     
  • 負荷テストを先にやること
  • 対象アプリケーションがASP.NETの場合や単体テストがある場合には、先に負荷テストを実施するようにしてください。負荷テストで問題があると感じたところ、発覚したところに的を絞ってパフォーマンスプロファイラを利用するとより効率的にボトルネックの検出ができます。

まとめ

 今回は、パフォーマンスプロファイラを使用したアプリケーションパフォーマンスの分析と結果の確認方法を重点的に確認してきました。レポートの見方は少々難しいところがありますが、おのおのの役割やメインのタスクを理解できればアプリケーションのボトルネックを見つけるのに役に立つツールになるのではないでしょうか。

 なお、Visual Studio Team Edition for Software Developersを使ってみようのシリーズは本稿で終了となります。単体テスト、FxCopによる静的コード分析と合わせ、VSTDにはさまざまな角度からアプリケーションの品質を高めるための機能が用意されています。これらの機能をぜひ活用して品質向上に役立ててみてください。

参考資料

  1. Visual Studio 2005 Team System ホームページ
  2. MSDN Library ? Visual Studio Team Systemドキュメント

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2005 Team Edition for Software Developersを使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2497 2008/09/05 11:20

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング