dotTrace 2020.2ヘルプ

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

「古典的な」 パフォーマンスプロファイリングとは異なり、タイムラインプロファイリング中にdotTraceは一時的なコールスタックとスレッド状態データを収集します。呼び出し時間についても同じデータが得られますが、タイムラインにバインドされます。このようにして、典型的な「最も遅い方法は何ですか」だけでなく、分析することができます。課題だけでなく、UIのフリーズ、過度のガベージコレクション、不均等なワークロード分散、不十分なファイルI/Oなど、イベントの順序が重要な課題もあります。

プロファイラの実行とスナップショットの取得

タイムラインプロファイリングを開始するには、セッションの構成時にタイムラインプロファイリングタイプを選択するだけです。

スナップショットを収集するプロセスは、パフォーマンスプロファイリング中のものとまったく同じです。アプリケーションの実行中にスナップショットを取得して待機するボタンをクリックするだけです。収集したタイムラインプロファイリングスナップショットを分析するには、タイムラインビューアーという別のdotTraceコンポーネントを使用する必要があります。

タイムラインユーザーインターフェースを最初に見てください

タイムラインビューアーのユーザーインターフェースを少し見てみましょう。

timeline first look png

ビューアーでの分析ワークフローは非常に簡単です。フィルタを使用して収集された時間データをスライスして切り取るだけです。

それで、フィルターはどこにありますか?実際には、画面に表示されるほぼすべてのUI要素は、データを表示するだけでなく、特定のフィルタを適用することもできます。フィルタの作業の結果は、常に特定の条件で選択された時間間隔またはポイントイベントのセットです。例:イベント | ファイル操作をクリックすると、dotTraceはアプリケーションがファイルI/O操作を実行したすべてのスレッドですべての時間間隔を選択するになります。スレッドリストのメインスレッドをクリックするとメインスレッドの寿命を選択になります。

もちろん、フィルターは一緒に連結することができます。上で述べた2つのフィルタを1つずつアクティブにすると、フィルタメインスレッドがファイルI/O操作を実行した時間間隔をすべて選択するが得られます。フィルタを慎重に組み合わせることで、アプリケーションのほぼすべての側面を調べることができます。

使い方

では、最も重要なタイムラインビューアーの使用例を見ていきましょう。このセクションでは、以下の方法を学習します。

CPU使用率が高い間隔を見つけて選択する

CPU使用率が高い間隔は、アプリケーションの全体的なパフォーマンスを評価し、最高の時間でメソッドを見つける必要がある場合に重要です。プロセスの概要図を使用して、このような間隔をすばやく検索して選択することができます。
find cpu usage png

最も遅いメソッドを見つけ、その呼び出しツリーを表示する

興味のある時間間隔を見つけたら、次のステップはこの間隔で最も遅いメソッドを見つけてメソッドの呼び出しツリーを調べることです。後者は、「なぜメソッドが遅いのか」または「メソッドの正確な子コールがほとんどの時間を占めるもの」を特定できます。両方の操作を実行するには、呼び出しスタックウィンドウ(メソッドとサブシステムリストから構成されています)と、呼び出しツリーを使用します。
slowest method call tree png

方法で何が起こっているかを素早く理解する

2017.1バージョン以降、Timeline Viewerは非常に役立つサブシステム機能を提供します。サブシステムの目的は、「アプリで何が起こっているのか」という主な質問に「パフォーマンスが低下する原因は何か」などのより具体的な質問にすばやく答えることです。または「何がそんなに多くのメモリを割り当てますか?」。パフォーマンスの低下は、ファイル操作、JIT、文字列処理、またはコード内の一部の過剰な作業に関連していますか?サブシステムフィルターは、選択した時間間隔の時間がさまざまなアクティビティーにどのように配分されるかを示す単一の場所です。以下の例では、サブシステムバーは、メソッドのメイン時間がロックの競合によって占有されていることを示しています。
going on method png

メソッドの親呼び出しを参照

問題のあるメソッドを調べるときは、その子呼び出しを確認するだけでなく、メソッド自体がどのように呼び出されるかを理解することが重要です。この目的のために、呼び出しツリー追跡モードに切り替えることができます。このモードでは、スタックの最初のメソッドまでの実行パスを確認できます(つまり、ある意味で、追跡は反転呼び出しツリーです)。
parent calls png

名前でメソッドを検索する

場合によっては、特定のメソッドのパフォーマンスをチェックする必要があります。時間はどれくらいかかりますか、タイムラインで正確に呼び出される場所などです。この場合、興味のあるメソッドをその名前で見つけることができます。たとえば、以下の例では、Factorial メソッドを見つけるでしょう:undefined
find by name png

タイムラインビューアーの直後にメソッドが見つかると、このメソッドによって自動的にフィルタが適用されます。

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

UIのフリーズの分析は、dotTraceが最善を示すフィールドです。アプリケーションのGUIがフリーズする間隔は自動的に検出されます。通常、必要なのは、UIフリーズを選択し、メソッドとサブシステムリストを調べることだけです。
ui freeze cause png

過度のメモリ割り当ての原因を見つける

過剰なメモリ割り当て、より正確には、ガベージコレクションの形でのその結果は、アプリケーションのパフォーマンスに大きな影響を与える可能性があります。アプリケーションのメモリ割り当ての起源を理解することは、パフォーマンス分析にとって非常に重要です。以下の例は、メモリの割り当てイベントを使用して、最も多くのメモリを割り当てるメソッドとサブシステムを決定する方法を示しています。
memory allocation png

HTTPリクエストをトレースする

HTTPリクエストをトレースする機能は、Webアプリケーションのパフォーマンスの欠点を分析する際に非常に重要です。dotTraceを使用すると、任意のApplication Performance Management(APM)システムと同じ方法でトランザクションをトレースできます。つまり、特定のURLへのリクエストをフィルタリングし、それらの背後にあるHTTPメソッドや、サーバーが処理するすべての操作を参照できます。SQLトランザクションや.NETコードのようなリクエスト。さらに、dotTraceは、本格的なコールツリー解析を提供するため、APMシステムに比べて大きな利点があります。undefined
http request tracing png
最終更新日: 2020年5月08日

関連ページ:

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

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

プロファイリングセッションの構成

プロファイリングターゲットを選択したら、プロファイリングセッションの設定に進むことができます。dotTraceの実行方法に応じて、プロファイリングセッションのオプションは別のウィンドウまたはホームウィンドウの右側のパネルに表示されます。オプションは2つのグループに分けられます。アプリケーションオプシ...

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

dotTraceは、アプリのプロファイリングにパフォーマンスとタイムラインの 2つの方法を提供します。ある程度、両方の方法に互換性があります。それにもかかわらず、1つまたは別のプロファイリング方法がより適切なタイプのタスクがあります。例:このセクションで説明するパフォーマンスプロファイリング方法は、...

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

基本概念で記述されていたように、タイムラインプロファイリングの背後にある主なアイデアは、一時的なコールスタックとスレッドの状態データを収集することです。特定のメソッドのパフォーマンスを評価できるだけでなく、パフォーマンスの欠陥が時間内にどのように分布しているかについての詳細情報も取得できます。これは...

プロセスの概要

プロセスの概要図は、アプリケーションアクティビティと、プロファイリングされたアプリケーションに関連する有意義なイベントを視覚化します。ダイアグラムを使用して、CPU負荷の高い間隔、GC間隔の長いブロック、UIのフリーズ間隔など、分析に関心のある時間間隔を決定して選択します。タイムラインの概要Use

メソッドとサブシステム

メソッドとサブシステムは、選択されたすべてのスレッドのメソッドリストを実行時間でソートして表示します。Useメソッドとサブシステムin conjunction with other filters to determine "top" methods by a certain c...