dotTrace の新機能
dotTrace 2020.3
.NET5 のサポート
dotTrace では、Windows、macOS、Linux 上の .NET5 アプリケーションのプロファイルを作成できるようになりました。Linux および macOS でアプリケーションをプロファイリングするには、JetBrains Rider または dotTrace コマンドラインプロファイラーのいずれかを使用する必要があることに注意してください。
Rider のフレームグラフとしてツリーを呼び出す
Rider では、コールツリーをフレームグラフモードに切り替えることができます。グラフは、現在のスコープで最も遅いメソッドをすばやく特定できます。
Rider 用の dotTrace は、コールツリーフォールディング機能を取得します(以前は、dotTrace のスタンドアロンバージョンでのみ使用可能でした)。ユーザーモジュールおよびアセンブリに属していない呼び出しのチェーンを折りたたむことにより、呼び出しツリー分析を簡素化できます。
さまざまな改善
Rider のスレッドリストでネイティブスレッドを非表示にできます。
ファイル I/O タイムラインフィルターに
FileIOCreate
イベントが含まれるようになりました。Rider でトップメソッドリストを非表示にすることができます。
dotTrace 2020.2
Mono および Unity アプリケーションのネイティブプロファイリング
Rider のスタンドアロン dotTrace と dotTrace はどちらも、Windows 上の Mono / Unity アプリケーションのネイティブ部分をプロファイルできます。ネイティブプロファイリングを有効にするオプションを使用してセッションを開始すると、パフォーマンススナップショットにネイティブコールスタックとマネージコールスタックの両方が表示されます。
ARM64 アーキテクチャのサポート
Linux 用の dotTrace コマンドラインプロファイラー(GLIBC_2.23 以降のディストリビューション)を使用すると、ARM64 システムでアプリケーションをプロファイリングできます。
コマンドラインプロファイラーを使用すると、コマンドを stdin またはファイルに送信することにより、プロファイリングセッションを制御できます(スナップショットの作成、プロファイルされたプロセスからの切り離しなど)。
新しい自己プロファイリング API(アプリケーションが自分でプロファイリングセッションを初期化および開始できる API)は、はるかに使いやすくなっています。セルフプロファイリング API は、NuGet パッケージとして配布されます。
dotTrace 2020.1
Linux および macOS サポートの改善
これで、トレースプロファイリングモードを使用して、macOS および Linux で .NET Core アプリケーションをプロファイルできます。これを行うには、JetBrains Rider または dotTrace コマンドラインプロファイラーを使用する必要があります。
これで、Linux で実行中のプロセスにプロファイラーを接続できます。
これで、次の重要なコールアクションを使用して呼び出しツリーをナビゲートできます。Ctrl+Shift+Right と dotTrace を押すと、詳細な分析に最も関連するノード(たとえば、独自の実行時間が長いノード)に移動します。
この機能は、dotTrace スタンドアロン(パフォーマンスビューアーとタイムラインビューアーの両方)、Visual Studio、および JetBrains Rider で使用できます。
dotTrace 2019.3
macOS および Linux での .NET Core サポート
dotTrace 2019.3 は、Linux および macOS での .NET Core プロジェクトのサンプリングプロファイリングをサポートしています。.NET Core 3.1 を対象とするプロジェクトのみが完全にサポートされていることに注意してください。.NET Core の一部の制限により、.NET Core 3.0 以前を対象とするプロジェクトのプロファイリングにはいくつかの課題がある可能性があります。まれに、プロファイルされたアプリケーションがハングまたはクラッシュする場合があります。Linux および macOS で .NET Core アプリケーションをプロファイルするには、JetBrains Rider または dotTrace コマンドラインツールを使用する必要があります。macOS および Linux のコマンドラインプロファイラー
コマンドラインプロファイラーがついに macOS と Linux に登場しました。dotTrace.sh
は、対応する Windows と同じ機能を持ち、.tar.gz アーカイブおよび NuGet パッケージとして配布されます。コールツリーフレームグラフ
呼び出しツリーのフレームグラフで一目で最も遅いメソッドを見つけます。グラフはタイムラインビューアーでのみ使用できることに注意してください。
dotTrace 2019.2
Rider のタイムラインフィルター。
Rider の dotTrace がより成熟しました。タイムラインフィルターのフルセットが取得され、タイムラインプロファイリングスナップショットの分析が容易になりました。.NET Core 3.0 の完全サポート。
dotTrace は、.NET Core 3.0 Preview 7 プロセスにアタッチできるようになりました。Visual Studio の ASP.NET Core アプリケーションのサポートの改善:
さまざまなホスティングモデルが正しくサポートされています。
プロファイリングセッションを開始するときに、ブラウザー設定と SSL を有効にするが考慮されます。
ASP.NET Core 3.0 Preview 7 がサポートされています。
その他の改善 ...
プロファイリング API は、プロファイルされたプロセスからデタッチする機能を取得します。
Silverlight および WebDev アプリケーションはサポートされなくなりました。
dotTrace 2019.1
Mono および Mono Unity アプリケーションは以下をサポートします。
スタンドアロン dotTrace:Windows のみ。
dotTrace は JetBrains Rider に統合されました:Windows、macOS、Linux。
コマンドラインプロファイラーの改善:
start
およびattach
コマンドは、時間測定型などの高度なプロファイリングパラメーターを受け入れるようになりました。Reporter.exe ツールは、最終レポートでオーバーロードされたメソッドを区別できるようにする
--save-signature
引数を受け入れます。
新しいプロファイリング API。プロファイリング API を大幅に更新しました。
ステートマシンを取り除きました。これで、コントローラーの状態に関係なく、あらゆる API メソッドを呼び出すことができます。
利用可能なメソッドの数を減らしたため、API の使用が簡単になりました。
NuGet パッケージとして API を配布します。
dotTrace 2018.3
JetBrains Rider 統合。プロファイリングセッションを設定および実行し、スナップショットを取得し、組み込みビューアーで分析できます。現在、ビューアーはタイムライン上にイベントの分布を表示することはできません。そのため、タイムラインスナップショットは単純なサンプリングスナップショットとして開かれます。
改善された .NET メモリ割り当てフィルター。タイムラインビューアーには、割り当てられたメモリが特定の種類のオブジェクト間でどのように分散されているかを分析できる新しいサブフィルターが用意されています。
IIS Express のプロファイリング設定の見直し。IIS Express でホストされている Web アプリケーションをプロファイルするデフォルトの方法は、dotTrace に applicationhost.config ファイルを提供することです。
dotTrace 2018.2
パフォーマンスと安定性が向上しました。
.NET プロセスのフィルターを含める。任意の .NET プロセスのプロファイリングを設定するとき、インクルードフィルターを設定することができます:dotTrace はフィルターにマッチするプロセスだけにアタッチします。
dotTrace 2018.1
パフォーマンスを向上させた。このリリースの dotTrace は、主に安定性とパフォーマンスの向上に重点を置いていました。
dotTrace 2017.3
非同期呼び出しのサポート。非同期コードの欠点は、それをプロファイルしてそのパフォーマンスを分析することが非常に難しいことです。dotTrace 2017.3 は非同期コードの分析を劇的に単純化します。呼び出しツリー内のすべての
async
呼び出しノードをマークし、そのノードに対応するawait
時間および継続コードをグループ化します。つまり、異なる呼び出しスタックを検索するのではなく、非同期呼び出しのすべての「部分」を 1 か所ですばやく見つけることができます。タイムラインビューアーの予測パフォーマンス。これで、タイムラインビューアーでアプリケーションのパフォーマンスを「予測」することができます。簡単に言うと、呼び出しツリーから特定の方法を除外すると、dotTrace はそのような方法がなかったかのようにスナップショット全体を再計算します。
メソッドとサブシステムのバックトレース (タイムラインビューアー)。これで、呼び出しツリーに切り替えることなく、メソッドとサブシステム内で特定のメソッドのバックトレースを素早く見ることができます。
ユーザーアセンブリをシステムとしてマークします。特定のユーザアセンブリをシステムのものとしてマークできます。その後、システムモジュールからのメソッドに適用されるすべての規則は、このユーザーアセンブリからのメソッドにも適用されます。メソッドの時間がメソッドとサブシステムで計算され、システムがフォールディングを呼び出す方法。
dotTrace 2017.3
非同期呼び出しのサポート。非同期コードの欠点は、それをプロファイルしてそのパフォーマンスを分析することが非常に難しいことです。dotTrace 2017.3 は非同期コードの分析を劇的に単純化します。呼び出しツリー内のすべての
async
呼び出しノードをマークし、そのノードに対応するawait
時間および継続コードをグループ化します。つまり、異なる呼び出しスタックを検索するのではなく、非同期呼び出しのすべての「部分」を 1 か所ですばやく見つけることができます。タイムラインビューアーの予測パフォーマンス。これで、タイムラインビューアーでアプリケーションのパフォーマンスを「予測」することができます。簡単に言うと、呼び出しツリーから特定の方法を除外すると、dotTrace はそのような方法がなかったかのようにスナップショット全体を再計算します。
メソッドとサブシステムのバックトレース (タイムラインビューアー)。これで、呼び出しツリーに切り替えることなく、メソッドとサブシステム内で特定のメソッドのバックトレースを素早く見ることができます。
ユーザーアセンブリをシステムとしてマークします。特定のユーザアセンブリをシステムのものとしてマークできます。その後、システムモジュールからのメソッドに適用されるすべての規則は、このユーザーアセンブリからのメソッドにも適用されます。メソッドの時間がメソッドとサブシステムで計算され、システムがフォールディングを呼び出す方法。
dotTrace 2017.2
コールツリー内のナビゲーションパス。コールツリーをナビゲートするとき、特定の機能にどのようにして到達したかを理解することは常に問題でした。dotTrace 2017.2 では、この問題は解決されました。「呼び出しツリー」ビューでは、すべての遷移が左側のガターに表示されます。
コマンドラインからのタイムラインプロファイリング。コマンドラインプロファイラーは、最終的にタイムラインプロファイリングタイプをサポートします。
単体テストで子プロセスをプロファイルします。
これで、単純なチェックボックスを使用して、単体テストで子プロセスのプロファイリングを有効にできます。複雑なプロファイリング構成は不要になりました。キャッシュファイルをクリアします。これで、dotTrace Home Preferences のボタンを使ってスナップショットキャッシュファイルを強制的に削除することができます。これにより、既存のスナップショットのロードが遅くなりますが、ディスクスペースがいくらか解放されます。
dotTrace 2017.1
Visual Studio 2017 のサポート。
ドラッグアンドドロップでアタッチします。これで、ドラッグアンドドロップを使用して、プロファイラーを実行中のアプリケーションに接続できます。単純に、プロファイリングするアプリケーションウィンドウに特別なアイコンをドロップします。
dotTrace ホームからスナップショットファイルを開きます。これで、dotTrace のホームウィンドウから .dtp と .dtt のスナップショットファイルを開くことができます。
dotTrace 2016.3
Visual Studio 2017 RC の初期サポート。
タイムラインビューアーのサブシステム。タイムラインビューアーは、パフォーマンスビューアーの最大の機能の 1 つであるサブシステムを取得します。サブシステムの仕組みは非常に単純です。ほとんどの場合、各サブシステムは特定のネームスペースまたはアセンブリ内で行われた呼び出しをグループ化するだけです。特定の呼び出しサブツリーの時間がさまざまなコンポーネント(ユーザーコードとシステムコード、WPF、LINQ、コレクション、文字列など)の間でどのように分散されているかを迅速に評価する必要がある場合に非常に役立ちます。
ネイティブメモリ割り当てを分析します。ネイティブメモリ割り当てイベントフィルターを使用すると、どのメソッドが割り当てを行っているのかを確認し、ネイティブメモリに関連するすべての課題を分析できます。
アプリケーションのデバッグ出力を分析します。デバッグ出力フィルターは、高度なデバッグに非常に役立ちます。選択すると、タイムラインには、アプリケーションがデバッグ出力に書き込むイベント (
Debug.Write
システムメソッドなど) のみが表示されます。イベントウィンドウ。イベントツールウィンドウには、イベントログ(プロファイルされたアプリケーションで発生したイベントのリスト:ファイル操作、JIT、SQL クエリなど)が表示されます。
.NET コアアプリケーションのプロファイリング。コンピューターに .NET Core ツールがインストールされている場合は、追加の操作なしで .NET Core アプリケーションをプロファイルできます。
dotTrace 2016.2
タイムラインビューアーでの再帰呼び出しの折りたたみ。再帰呼び出しを 1 つのノードに折りたたむことによって、深い再帰呼び出しスタックの分析を単純化します。
dotTrace 2016.1
Visual Studio のスレッド図。
Visual Studio に統合された dotTrace ビューアーは、スタンドアロンの対応するものとまったく同じスレッドダイアグラムを取得するため、これを使用してスレッド、時間範囲を選択し、スレッドのアクティビティとフィルタリングされた時間間隔を表示できます。スレッド図のスマートツールチップ。スレッドダイアグラムの任意のスレッドにマウスカーソルを合わせると、この特定の時点でこのスレッドが何をしていたかについての詳細な情報がツールチップに表示されます。O)、およびその他のデータ。
パフォーマンスビューアーでプレーンリスト全体をクリップボードにコピーします。これで、プレーンリストの内容全体をクリップボードにコピーできます。
Reporter.exe ツールによって生成されたレポートのプロファイルプロセスデータ。スナップショットからパフォーマンスデータを取得するために使用される Reporter.exe ツール(プロファイリングの自動化や CI など)は、XML レポートに追加のデータを配置するようになりました。
/add_process_info
オプションを有効にしてレポートを作成する場合、レポートにはプロファイルされたプロセスの実行可能ファイルへのパスが含まれます。この情報は、複数の子プロセスを持つアプリケーションをプロファイリングするときに非常に役立ちます。
dotTrace 10
Visual Studio での統合。Visual Studio は呼び出しツリーからソースコードへの即時ナビゲーションを備えたタイムラインビューアーの統合版を手に入れます。
コンソールプロファイラーは、コマンドライン引数を介して構成を受け入れます。XML ファイルでプロファイリング構成を提供する代わりに、コマンドライン引数を使用してこれを行うことができます。
dotTrace 6.2
実行構成のプロファイリング。Visual Studio に統合された dotTrace はより多くのプロファイリング機能を得ます。これで、スタートアッププロジェクトだけでなく、スタートアッププロジェクト、任意の実行可能ファイル、さらには静的メソッドなど、あらゆる実行構成をプロファイルできます。
受信 HTTP リクエストのプロファイリング。タイムラインビューアーは新しい受信 HTTP リクエストフィルターを提供します。これで、特定の HTTP リクエストが処理された時間に関する正確なデータを得ることができます。
dotTrace 6.1.1
スナップショットの自動削除。毎週または毎月手動で面倒を見なくても、古いスナップショットを自動的に削除することができます。
Configuration2Xml ツールを更新しました。コマンドラインによるプロファイリングが復活しました !
dotTrace 6.1
SQL クエリプロファイリング。タイムラインビューアーは新しい SQL クエリフィルターを提供します。これで、特定の SQL クエリが実行された時間と、どのメソッドがクエリを実行したかに関する正確なデータを取得できます。
再設計された dotTrace コントローラー。dotTrace コントローラーは、よりきれいで、画面上のスペースを取りません。
タイムラインビューアーのパフォーマンスが向上しました。
dotTrace 6.0
アプリケーションに関する一時的な呼び出しスタックとスレッド状態データを収集する全く新しいタイムラインプロファイリングメソッド。
再設計された UI。現在、dotTrace インターフェースは、dotTrace のホームウィンドウ、パフォーマンスビューアー、タイムラインビューアーの 3 つの主要コンポーネントで構成されています。
プロファイリングセッションは、新しい dotTrace ホームウィンドウで設定および開始されます。
より柔軟なサブシステム。サブシステム時間をどのように処理するかを指定できます。別々に表示されるか、呼び出しサブシステム時間に含まれるか、まったく考慮されないかのどちらかです。
子プロセスのフィルタリング。アプリケーションのどの子プロセスをプロファイルしないかを指定できます。
dotTrace 5.5
dotTrace 5.3
Microsoft Visual Studio 2012 および ReSharper 7.1 との統合
dotTrace 5.0
.NET プロセスへのアタッチ
改善されたリモートプロファイリング
CLR バージョン 2.0 および 4.0 を対象とするアプリケーションの同時プロファイリング
メッセージポンピングを行うスレッドには特別なアイコンが表示されます
dotTrace 4.5
WCF アプリケーションのプロファイリング
無関係な呼び出しを隠すためのフィルタリングの強化
特定のクラスのすべてのパブリックメンバーを新しいタブで開いてパフォーマンスを調べる
ソースサーバーを使用した .NET フレームワークアセンブリのソースコードのプレビュー
大きなスナップショットを処理する際のパフォーマンスの向上 (特にプレーンリストとホットスポット )
パフォーマンス予測のその他のオプション
フローティングライセンス使用ポリシーの改善
改善されたホームタブ
dotTrace 4.0
- 新しいパフォーマンスプロファイリング機能:
.NET フレームワーク 4.0 アプリケーションのプロファイリング
.NET Compact で構築された Windows Mobile アプリケーションのプロファイリングフレームワーク 3.5。
Silverlight 4 アプリケーションのプロファイリング。
IIS 7 または IIS 7.5 でデプロイされた Web アプリケーションのプロファイリング
任意の .NET プロセスのプロファイリング
アプリケーションのリモートプロファイリング
プロファイリングアプリケーション line-by-line。
実行時間を測定する新しい方法:ウォールタイム (パフォーマンスカウンタ)。
高い正確性オプションを使用すると、プロファイラ内で費やされた時間を考慮に入れることができます。
同じ名前のスレッドをマージします。
- パフォーマンススナップショットの操作の改善点:
最大数百ギガバイトのサイズのスナップショットを処理します。
新しいプレゼンテーションビュー:概要。
名前の一致を含む検索とナビゲーションの速度が向上しました。
関数へのテキスト注釈の追加。
拡張フィルター。
ズームしたい機能やクラスのための選択的なラインバイラインプロファイリング。
改善されたソースコードプレビュー。
- Microsoft Visual Studio との統合:
Visual Studio 2005、2008、2010 との統合
Visual Studio からプロファイルを作成するときに、より多くのアプリケーションタイプをサポートします。
Visual Studio、JetBrains ReSharper、dotTrace を使用して単体テストをプロファイリングします。
- エディション:
2 つのエディション:標準と Professional。
関連ページ:

プロファイラオプション
デフォルトでは、プロファイラオプションセクションは次のパラメーターで構成されています。プロファイリングタイプdotTrace がプロファイリングデータを収集する方法を定義します。次の表は、適切なプロファイリングタイプの選択に役立ちます。詳細については、基本概念を参照してください。サンプリング正確な時...

呼び出しツリー
呼び出しツリーはメソッド実行パスを示します。ツリー内の各メソッドノードは、特定のスレッドによって実行されるトップレベルのメソッドを表します。メソッドノードには、呼び出されたメソッドとプロファイリング時に収集されたメトリックがリストされます。呼び出しツリーを使用して:アプリケーションアクティビティの概...

.NET コードのパフォーマンスプロファイリング
パフォーマンスプロファイリングの目的は、アプリケーションのパフォーマンス課題の原因を見つけることです。これには、たとえば、「最も遅い方法は何ですか」という直接的なことが含まれます。CPU の枯渇、ガベージコレクションのブロック、ディスク I/O、その他の課題に関連するパフォーマンスのボトルネックの分...

プロファイリング結果の分析
アプリケーションの実行が遅すぎると、問題を特定して実行するアクションを理解することが困難になる可能性があります。アプリケーションのプロファイリングとパフォーマンススナップショットの取得後の次のステップは、スナップショットを開いてデータを分析することです。通常、パフォーマンス分析の最終的なゴールは、パ...

アプリケーションのプロファイリング
現在、.NETコードプロファイリング機能はWindowsでのみ利用可能です。どのアプリケーションタイプをプロファイルするかにかかわらず、ワークフローは常に同じであり、次の要素で構成されています。プロファイリングセッションの設定、セッションを実行してスナップショットを取得する、収集したスナップショット...

.NET メモリ割り当て
イベントフィルターで.NET メモリ割り当てが選択されている場合、タイムラインビューアーは、アプリケーションがマネージヒープにどのようにメモリを割り当てたかを示します。例:呼び出しツリーは、特定のコールが割り当てたメモリ量(MB 単位)を示します。過度のメモリトラフィックとガベージコレクションを分析...