dotTrace 2020.1ヘルプ

タイムラインビューアーの概念

基本概念で記述されていたように、タイムラインプロファイリングの背後にある主なアイデアは、一時的な呼び出しスタックとスレッド状態データを収集することです。そのため、特定のメソッドのパフォーマンスを評価するだけでなく、パフォーマンスの欠陥が時間内にどのように分散されているかについての詳細な情報も取得できます。これは、UIフリーズ、同期遅延、過度のガベージコレクション、ファイルI/O、およびその他の間隔イベントを分析するのに非常に役立ちます。

タイムラインビューアー UIは、イベントタイムラインでの作業に便利です。これは、一時的なデータをフィルタリングして視覚化できる一連のフィルタと図です。

timeline concepts 1

タイムラインビューアーの分析ワークフローは非常に簡単です。

  1. まず、タイムラインデータ、ガベージコレクション時間間隔、メモリ割り当てデータ、アプリケーションがSQLサーバーと連携していた時間間隔など、興味のあるアプリケーション内の任意のイベントをイベントで選択します。

  2. フィルタを使用してデータをスライスして切り取ります(フィルタータイムライン、および呼び出しスタックは時間、スレッド、または特定の方法によるフィルタリングを適用できます)。フィルタの作業の結果は、常に特定の条件で選択された時間間隔またはポイントイベントのセットです。例:ビューアーに「メインスレッドが実行されているすべての時間間隔を選択する」または「MyMethod()が動作するすべての時間間隔を選択する」を聞くことができます。

  3. フィルタリングされたデータを表示および分析します。

ここでは、タイムラインビューアーでデータ分析を成功させるために必要ないくつかの概念を紹介します。

すべてがフィルターです

ステップ 2と3は両方とも同じUIコントロールを使用して実行されます。各コントロールは、特定のフィルタを設定するだけでなく、フィルタリングされた情報のチャンクを表示するためにも使用されます。

例:スレッド状態フィルタは、スレッド状態でフィルタを適用できるだけでなく、選択したスレッドが特定の状態にあった時間も表示します。

フィルタは連鎖しています

フィルタはチェーンでグループ化できます。複雑なフィルタの組み合わせにより、アプリのあらゆる側面を分析することができます。

例: "メインスレッドが実行されているすべての時間間隔を選択する"フィルタと "ガベージコレクションをブロックするすべての時間間隔を選択する"フィルタを組み合わせると、フィルタ"ガベージコレクション中にメインスレッドが実行されている時間間隔をすべて選択する"が得られます。つまり、このフィルタの組み合わせは、メインスレッドがGCを切り替えた時間間隔だけを残します。呼び出しスタック | トップメソッドフィルタは、コレクションを切り替えた正確なメソッドを表示します。

Visual Studioに統合されたタイムラインビューアー

Visual Studioのタイムラインビューアーは、パフォーマンスプロファイラツールウィンドウ(ReSharper | プロファイル | オープンパフォーマンスプロファイラ)で表されます。これは、Visual Studio内での使用に合わせて調整されたスタンドアロンのタイムラインビューアー版です。両方のツールのユーザーインターフェースはほとんど同じです。主な違いは、メインウィンドウにフィルターがどのように表示されるかという点です( 違いの全リストを参照)。

performance profiler window

最終更新日: 2020年6月19日