troushoo

PerfTips : デバッグ中にパフォーマンス情報を表示するVisual Studio 2015 の新機能

概要

Visual Studio 2015 の新機能PerfTips を紹介します。
PerfTips は、フリーで使用可能なCommunity エディションでも使える機能で、デバッグ中にパフォーマンス情報を表示することが可能な機能です。
以下、単純なコードを用いてPrefTips を紹介します。

内容

サンプルコード
以下のRealLine()、WriteLine() をするだけの単純なサンプルコードを用います。

using System;
 
namespace PerfTipsTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            int j = 1;
            int k;
 
            k = i + j;
            Console.ReadLine();
            Console.WriteLine(k);
        }
    }
}

PerfTips の使い方
PerfTips はブレークポイントを設定した場所から、次にデバッガに制御が移った時までの時間を表示してくれる機能です。
以下、「ステップオーバー(F10) を利用」「ブレークポイントを利用」の2パターンでのPerfTips の使用方法を紹介します。

ステップオーバー(F10) を利用
1. 「k = i + j」の行にブレークポイントを張り、デバッグを開始します。


2. ブレークポイントにヒットしたら、ステップオーバー(F10) を実行し一行処理を進めます。


3. すると「≤ 1ミリ秒経過」と表示され、「k = i + j」は1 ミリ秒以下かかったことがわかります。
この数字には、PerfTips 実行によるパフォーマンスのオーバーヘッドが含まれていることに注意してください。


ブレークポイントを利用
1. 「k = i + j」の行にブレークポイントを張り、デバッグを開始します。

2. 「Console.WriteLine(k)」にもブレークポイントを張ります。


3. 再度デバッグを実行し、「k = i + j」と「Console.ReadLine()」を実行させます。

4. すると、ブレークポイントからブレークポイントまでにかかった時間が表示されます。
以下のスクリーンショットでは、4,825 ミリ秒以下かかったことがわかります。
この数字にも、PerfTips 実行によるパフォーマンスのオーバーヘッドが含まれていることに注意してください。


ベストプラクティス
複数回のパフォーマンス測定
パフォーマンスはいろいろなものに影響を受けます。例えば、キャッシュなどです。
よって、複数回のパフォーマンス測定が推奨されます。

リリースビルドでのデバッガーを介入させないパフォーマンス測定
より正確なパフォーマンス測定を行うには、リリースビルドによるデバッガーを介入させないパフォーマンス測定が推奨されます。
具体的な方法としては、例えば「CPU 使用率」を使うような方法があります。


情報元
PerfTips: Performance Information at-a-glance while Debugging with Visual Studio (英語)

関連記事
Visual Studio 2013 Update 2 の新機能 : CPU 使用率
  1. 2015/08/04(火) 22:20:41|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0
<<Message Analyzer でのネットワークキャプチャーに、通信しているプロセス名情報を追加する方法 | ホーム | フリーで使用可能なBurp Proxy を使用して、Ubuntu でのSSL 通信を複合>>

コメント

コメントの投稿


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

トラックバック

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

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

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

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

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