プロファイリング設定ダイアログ
このダイアログを使用して、プロファイリング設定を作成、編集、調整、削除します。
共通オプション
名前 | このフィールドでは、プロファイリング設定の名前を指定します。この名前は、後で編集するときや起動するときに、作成した設定を識別できます。 |
プロファイリングを手動で制御する | プロファイラーコントロールを使用して手動でプロファイリングを制御できます。例: スナップショットを撮るには、スナップショットを取得するボタンをクリックする必要があります。 |
最初からプロファイリングデータを収集する | 最初からプロファイリングデータを収集する : 選択した場合、dotTrace は起動直後にプロファイリングデータの収集を開始します。それ以外の場合、dotTrace は、dotTrace プロファイラーツールウィンドウで録画の開始をクリックした後にのみデータの収集を開始します。 |
API によるプロファイルの制御 | プロファイルされたアプリケーションのコードから直接プロファイリングを制御できます。例: コードの正確なポイントでスナップショットを取得します。API の使用について詳しくは、dotTrace のドキュメントを参照してください。 |
プロファイルの子プロセス | 選択すると、dotTrace はメインのアプリプロセスだけでなく、それが実行するプロセスもプロファイルします。 |
ツールバー
プロファイリング設定のツリー表示には、ソリューションで使用可能な設定の管理やデフォルト設定テンプレートの調整に役立つツールバーがあります。
項目 | ショートカット | 説明 |
---|---|---|
| Alt+Insert | プロファイリング設定を作成します。 |
| Alt+Delete | 選択したプロファイリング設定を削除します。 |
| Ctrl+D | 選択したプロファイリング設定のコピーを作成します。 |
/ | Alt+Up / Alt+Down | 選択したプロファイリング設定をリスト内で上下に移動します。 リスト内の設定の順序は、プロファイリング設定を選択したときに表示される設定の順序を定義します。 |
プロファイリングタイプ: サンプリング
サンプリングプロファイリングタイプは正確な時間測定を提供しますが、メソッド呼び出しの数を測定しません。ほとんどのプロファイリングケースではサンプリングをお勧めします。アプリケーションで初めてパフォーマンスの問題を探すときに理想的です。
時間測定 | このオプションは、dotTrace が呼び出し時間を計算する方法を定義します。詳細については、https://www.jetbrains.com/help/profiler/Profiling_Guidelines__Setting_the_Right_Meter_Kind.html を参照してください。通常、これは、スレッドが動作していないときに dotTrace が時間を計算するかどうかの選択です。より具体的には、次のオプションがあります。
|
プロファイリングタイプ: トレース
トレースプロファイリングタイプは正確なコール数測定を提供します。プロファイリングのオーバーヘッドが原因で時間の測定が不正確になる可能性があることに注意してください。サンプリングデータが十分でない場合にのみ、このプロファイリングタイプを使用してください。例: アルゴリズムの複雑さを分析するため(呼び出し回数に関する情報が呼び出し時間の値よりも価値がある場合)。
時間測定 | このオプションは、dotTrace が呼び出し時間を計算する方法を定義します。詳細については、https://www.jetbrains.com/help/profiler/Profiling_Guidelines__Setting_the_Right_Meter_Kind.html を参照してください。通常、これは、スレッドが動作していないときに dotTrace が時間を計算するかどうかの選択です。より具体的には、次のオプションがあります。
|
インライン化を有効にする | dotTrace が JIT インライン化をオフにして、アプリケーションのソースコードの構造によく似た呼び出しスタックを取得するようにする場合は、このオプションをオフにします。 |
高い正確性 | 選択された場合、dotTrace はより多くの時間サンプルを取ることによってプロファイラー自体で費やされる時間を考慮に入れます。 |
プロファイリングタイプ: 1 行ずつ
1 行ずつプロファイリング中に、コードの各行が測定されます。呼び出し時間の値は、プロファイラーのオーバーヘッドが大きいため不正確です。高度な場合にのみ使用してください。例: どの関数が問題を引き起こすのかをすでに知っていて、その各行を分析したい場合
時間測定 | このオプションは、dotTrace が呼び出し時間を計算する方法を定義します。詳細については、https://www.jetbrains.com/help/profiler/Profiling_Guidelines__Setting_the_Right_Meter_Kind.html を参照してください。通常、これは、スレッドが動作していないときに dotTrace が時間を計算するかどうかの選択です。より具体的には、次のオプションがあります。
|
インライン化を有効にする | dotTrace が JIT インライン化をオフにして、アプリケーションのソースコードの構造によく似た呼び出しスタックを取得するようにする場合は、このオプションをオフにします。 |
高い正確性 | 選択された場合、dotTrace はより多くの時間サンプルを取ることによってプロファイラー自体で費やされる時間を考慮に入れます。 |
プロファイリングタイプ: タイムライン
タイムラインプロファイリングセッション中に、dotTrace はスレッド状態、アプリケーションイベント、その他のマルチスレッドデータに関する一時的なデータを収集します。ほとんどの場合、このプロファイリングタイプをお勧めします。特にマルチスレッドアプリケーションの分析用です。たとえば、UI フリーズ、過度のガベージコレクション、不均一なワークロード分散、不十分な I/O などの原因を特定するために使用します。
ネイティブ割り当てを収集する | 選択すると、dotTrace は、プロファイリングされたアプリケーションがネイティブ (アンマネージド) ヒープ内で行うすべてのメモリ割り当てに関する情報を収集します。 |
TPL イベントを収集する | 選択すると、プロファイリングのパフォーマンスに影響する可能性がありますが、dotTrace はタスク並列ライブラリ (TPL) データを収集します。選択を解除すると、呼び出しツリーに アプリケーションがマルチタスクを使用しない場合、またはこの情報が必要ない場合は、このオプションをクリアしてください。 |
デバッグ出力を収集する | 選択した場合、dotTrace は、プロファイルされたアプリケーションがデバッグ出力に送信するすべてのメッセージに関する情報を収集します。 |
プロファイリングタイプ: タイムライン (Mono)
タイムラインプロファイリングタイプを使用してのみ Mono アプリケーションをプロファイルできます。.NET フレームワークアプリケーションのプロファイリングタイプを区別するために、別のタイムライン (Mono) プロファイリングタイプがあります。
ネイティブ割り当てを収集する | 選択すると、dotTrace は、プロファイリングされたアプリケーションがネイティブ (アンマネージド) ヒープ内で行うすべてのメモリ割り当てに関する情報を収集します。 |
TPL イベントを収集する | 選択すると、プロファイリングのパフォーマンスに影響する可能性がありますが、dotTrace はタスク並列ライブラリ (TPL) データを収集します。選択を解除すると、呼び出しツリーに アプリケーションがマルチタスクを使用しない場合、またはこの情報が必要ない場合は、このオプションをクリアしてください。 |
デバッグ出力を収集する | 選択した場合、dotTrace は、プロファイルされたアプリケーションがデバッグ出力に送信するすべてのメッセージに関する情報を収集します。 |
プロファイリングタイプ: タイムライン (Unity)
タイムラインプロファイリングタイプを使用してのみ Unity アプリケーションをプロファイルできます。.NET フレームワークアプリケーションのプロファイリングタイプを区別するために、別のタイムライン (Unity) プロファイリングタイプがあります。
ネイティブ割り当てを収集する | 選択すると、dotTrace は、プロファイリングされたアプリケーションがネイティブ (アンマネージド) ヒープ内で行うすべてのメモリ割り当てに関する情報を収集します。 |
TPL イベントを収集する | 選択すると、プロファイリングのパフォーマンスに影響する可能性がありますが、dotTrace はタスク並列ライブラリ (TPL) データを収集します。選択を解除すると、呼び出しツリーに アプリケーションがマルチタスクを使用しない場合、またはこの情報が必要ない場合は、このオプションをクリアしてください。 |
デバッグ出力を収集する | 選択した場合、dotTrace は、プロファイルされたアプリケーションがデバッグ出力に送信するすべてのメッセージに関する情報を収集します。 |
関連ページ:
.NET コードのパフォーマンスプロファイリング
パフォーマンスプロファイリングの目的は、アプリケーションのパフォーマンス問題の原因を見つけることです。これには、たとえば、「最も遅い方法は何ですか ? 」という単純な質問が含まれます。CPU 不足、ガベージコレクションのブロッキング、ディスク I/O、その他の問題に関連するパフォーマンスのボトルネックのより複雑な分析も可能です。JetBrains Rider は dotTrace プロファイラーと統合して、.NET アプリケーションのパフォーマンスプロファイリングを提供します。プロファイラーは、do...
dotTrace プロファイラーウィンドウ
このウィンドウでは、.NET アプリケーションのパフォーマンスのボトルネックをプロファイルして分析できます。dotTrace プロファイラーは、以下で構成されるマルチタブウィンドウです。収集されたスナップショットを開くために使用されるすべてのスナップショットタブ、プロファイリングセッションを制御するために使用されるプロファイリングタブ。収集されたパフォーマンススナップショットを分析するために使用される分析タブ。すべてのスナップショットタブ:すべてのスナップショットタブは、以前に収集されたスナッ...
API を使用したプロファイリングセッションの制御
プロファイリング API は、プロファイリングプロセスを制御できるようにする多数のクラスを提供します。例: アプリケーションのコードから、次のことができます。プロファイリングデータの収集を開始する:,、データ収集を停止する:,、データをディスクに保存する:,、その他、API クラスの詳細については、API 参照を参照してください。プロファイリング API を使用する必要がある主なシナリオは 2 つあります。コードの特定部分のプロファイリング、自己プロファイルアプリケーション。コードの特定の部分をプ...
非同期呼び出しを分析する
非同期コードの欠点の 1 つは、プロファイルを作成してパフォーマンスを分析するのが難しいことです。これは、非同期メソッドが実行されると、制御が別のスレッドに切り替えられて戻るため、結果の呼び出しツリーがもつれているためです。dotTrace は、非同期コードの分析を大幅に簡素化します。呼び出しツリー内のすべての呼び出しノードをマークし、対応する時間と継続コードをそのノードにグループ化します。つまり、異なる呼び出しスタックで検索するのではなく、非同期呼び出しのすべての「部分」を 1 か所ですばやく...
デバッグ出力
デバッグ出力フィルターは、アプリケーションがデバッグ出力に書き込むイベントを示します。システムメソッドを使用します (実際、dotTrace はシステム関数のすべての呼び出しを追跡します)。デバッグ出力を選択すると、呼び出しツリーは出力に書き込むメソッドのみを表示します。高度なデバッグにはデバッグ出力イベントを使用します。デバッグ出力: 文字列:サブフィルターは、特定のメッセージがデバッグ出力に送信されたポイントイベントをフィルターに掛けるために使用されます。デバッグ出力を適用するには: 文字...