dotTrace 2020.2ヘルプ

パフォーマンスプロファイリングを開始する

dotTraceは、アプリのプロファイリングにパフォーマンスタイムラインの 2つの方法を提供します。ある程度、両方の方法に互換性があります。それにもかかわらず、1つまたは別のプロファイリング方法がより適切なタイプのタスクがあります。例:このセクションで説明するパフォーマンスプロファイリング方法は、より簡単な「最も遅い方法は何か」のタスク、または特定の行ごとのパフォーマンスを詳細に調べる必要があるタスクに適しています。メソッドまたはアルゴリズム。
タイムラインプロファイリングメソッドは、スタックトレースデータだけでなく、コールの時間配分に関するデータも収集します。このメソッドは、UIがフリーズする、SQLリクエストが遅くなる、ガベージコレクションが多すぎるなど、イベントの順序が重要な課題に最適です。タイムラインプロファイリングの使用方法の詳細については、次のチュートリアルを参照してください。

次に、最も簡単なパフォーマンスプロファイリングワークフローを見てみましょう。例:パフォーマンスの課題があるかどうかのアプリケーションがあります。望むのは、そのパフォーマンスを評価することです。つまり、どのメソッドが最も時間を要するかを調べるだけです。

ステップ 1. dotTraceの実行

アプリケーションのプロファイリングを開始するには、スタンドアロンツールとして、またはVisual Studioから、dotTraceを起動する方法があります。

スタンドアロンのdotTraceの実行

このモードは、元のプロジェクトまたはソースコードが利用できないアプリケーション、またはVisual Studioをインストールまたは起動せずにdotTraceを実行するアプリケーションに最適です。スタンドアロンのdotTraceを実行するには:

  1. WindowsのスタートメニューからdotTraceを起動します。

    Running dotTrace 1 png
    これにより、dotTraceホームウィンドウが実行されます。

Visual StudioからdotTraceを実行する

  1. Visual Studioを実行します。

  2. プロファイルするソリューションを開きます。

  3. メニューでReSharper | プロファイル | スタートアップ設定のパフォーマンスプロファイリングを実行しています...を選択します。

    resharper menu upd png

ステップ 2. プロファイリングセッションの設定と実行

次のステップは、プロファイリング・プロパティを構成し、プロファイリング・セッションを実行することです。
  1. 左側のパネルでプロファイルローカルアプリを選択します。これは、このコンピューターにあるアプリケーションのプロファイルを作成することを示しています。

    t3 local session png

  2. プロファイル適用の中央パネルで、スタンドアロンを選択します。dotTraceは、IISサーバー、WCFサービスなどでホストされているWebアプリケーションなど、さまざまな種類のアプリケーションをプロファイルできます。

    t3 app type png

  3. 右側のパネルで、プロファイリングオプションを指定します。

    t3 profiler options png

    • アプリケーションでは、アプリケーションの実行可能ファイルへのパスを指定します。

    • プロファイリング・タイプでは、プロファイリングタイプを指定します。

      これははるかに重要なプロファイリングオプションです。次の中から選択できます。

      • サンプリング - 最速の方法です。正確に呼び出し時間を測定しますが、呼び出し回数に関するデータは取得しません。このプロファイリングタイプを使用すると、アプリケーションのパフォーマンスに関する一般的な概念をすばやく把握できます。

      • トレース - サンプリングより遅い(そしてこれが原因で呼び出し時間を正確に測定することはできません)が、特定のメソッドが呼び出された回数を正確に測定します。サンプリングデータが十分でない場合は、この方法を使用してください。アルゴリズムの複雑さを評価するため。

      • 1行ずつ - コードの各行を測定する最も遅い方法です。行ごとのプロファイリングは、どの機能が課題を引き起こすかをすでに知っていて、その各行を分析したい場合にのみ意味があります。

      • タイムライン - タイムラインプロファイリングを実行するために使用されます。それについては別のチュートリアルで読んでください。

      ご覧のように、アプリケーション全体のパフォーマンスを評価する必要がある場合は、サンプリングメソッドを使用する必要があります。

  4. プロファイルを開始するには、実行をクリックします。dotTraceはアプリケーションのプロセスに接続し、パフォーマンスデータの収集を開始します。

ステップ 3. スナップショットの取得

プロファイリングセッションを実行すると、dotTraceはプロファイリングされたアプリケーションだけでなく、プロファイリングセッションを制御するための別のウィンドウであるいわゆる「プロファイリングコントローラー」 - パフォーマンススナップショットの収集、プロファイルされたアプリケーションからのデタッチなどを実行します。次のステップは、コントローラーウィンドウを使用してプロファイリングデータを収集することです(言い換えれば、パフォーマンススナップショットを取得する)。

t1 profiling controller png

  1. アプリケーションの操作:パフォーマンスをチェックしたり、特定の使用シナリオを実行したりする機能を実行します。

  2. 収集したプロファイリングデータが十分であることが確認できたら、コントローラーウィンドウでスナップショットを取得して待機するをクリックします。

  3. プロファイルされたアプリケーションを閉じます。これによりコントローラーウィンドウも閉じます。

ステップ 4. スナップショットデータの分析

プロファイルされたアプリケーションを閉じると、dotTraceは別のアプリケーション(パフォーマンスビューアー)を実行します。便利なUIを使用して、収集されたパフォーマンスデータを分析できます。

UIは、さまざまな角度からデータを見ることができるいくつかのビューで構成されています。

ホットスポット

ホットスポットで始めることができます。このビューは、実行時間の最も長い関数のリストを示しています。このビューを使用して、最も簡単な方法を一目で見つけることができます。

t3 hot spots png

より詳細な分析を行う場合は、スレッドツリー呼び出しツリー、およびプレーンリストの他のパフォーマンスプロファイラビューを使用できます。

スレッドツリー

アプリケーションのスレッドアクティビティを表示および分析できます。

t3 threads png

呼び出しツリー

呼び出しツリーはすべてのスレッドですべてのメソッド呼び出しを表示します。各最上位ノードは、特定のスレッドによって実行されたトップレベルの機能を表します。このビューを使用すると、実際のアプリケーションアクティビティに素早くアクセスできます。

t3 call tree png

プレーンリスト

単純なメソッドリストを表示します。特定のメソッドを完全に分析することができます。

t3 plain list png

ソースビュー

メソッドを選択すると、パフォーマンスビューアーは、アプリケーションのデバッグシンボルによって提供される情報に基づいて、このメソッドの実際のコードを表示します。ソースコードがない場合、パフォーマンスビューアーはアセンブリからメソッドを逆コンパイルしようとします。

t3 source view png

さらに学習したい方に

これらの基本をマスターしたら、プロファイラーデータを分析するさまざまな手法を学びます。パフォーマンスビューアーには、リモートプロファイリングメソッド呼び出しのナビゲートフィルタリング、フォールディングパフォーマンスの向上などの優れた機能が含まれています。このガイドの特定のセクションで、これらおよびその他の機能について参照してください。

最終更新日: 2020年8月06日

関連ページ:

パフォーマンスプロファイリング

パフォーマンスプロファイリング中に、dotTraceは呼び出しスタックデータと呼び出しタイミングに関するデータを収集します。つまり、パフォーマンスプロファイリングでは、特定のメソッドを実行するために必要な時間、呼び出される頻度、およびメソッド呼び出しパスをトレースすることができます。パフォーマンスプ...

UIフリーズの原因を見つける

警告!このチュートリアルはdotTrace 2016.2のために書かれました。一部のUIコントロール(フィルタなど)は、dotTrace 2016.3で大幅に再設計されています。例:分析サブジェクトフィルターのすべてのコントロールをイベントフィルターに移動しました。このチュートリアルでは、重要なプロ...

予測パフォーマンス

大規模で複雑なアプリケーションの場合、通常、プロファイルするには多くの時間がかかります。スナップショットを分析しているうちに、時間がかかるような機能やクラスが見つかることがあります。これらの関数とクラスを最適化することで、アプリケーション全体のパフォーマンスを向上させることができます。調整機能オプシ...

タイムラインのプロファイリングを開始する

「古典的な」パフォーマンスプロファイリングとは異なり、タイムラインプロファイリング中にdotTraceは一時的なコールスタックとスレッド状態データを収集します。呼び出し時間についても同じデータが得られますが、タイムラインにバインドされます。このようにして、典型的な「最も遅い方法は何ですか」だけでなく...