dotTrace の新機能
dotTrace 2025.1
We've introduced tabs to dotTrace, making snapshot analysis more flexible. You can now open the same snapshot in multiple tabs, each with its own set of applied filters. For example, you can analyze one data set in one tab while applying a completely different set of filters in another. You can seamlessly switch between tabs without resetting and reapplying the filters. The tabbed interface is available only in the standalone version of dotTrace.
dotTrace 2024.3
元に戻す / やり直しとフィルター履歴
dotTrace では、元に戻す / やり直すとフィルター履歴の完全なサポートを導入しました。フィルターの変更はすべて記録されるようになったため、以前の状態に簡単に戻すことができます。最後の変更を元に戻すには元に戻すボタンまたはホットキーを使用し、変更を再適用するにはやり直しボタンを使用します。ドロップダウンリストにアクセスして複数の手順を同時に元に戻すこともできます。変更は時系列でリストされます。
dotTrace 2024.2
パフォーマンスの改善
dotTrace のすべてのバージョンでは、タイムラインスナップショットや呼び出しツリーおよびホットスポットビューのデータの処理が高速化されるなど、パフォーマンスがいくつか向上しています。
その他の改善とバグ修正
現在、すべてのプラットフォーム上の dotTrace ビューアーは同じ新しいレンダリングエンジンを使用します。更新されたビューアーで問題が発生した場合は、dotTrace ホーム | 設定の新しいクロスプラットフォーム dotTrace ビューアーをデフォルトで使用を削除してください。
macOS および Linux 用の dotTrace のスタンドアロンバージョンは、オプションウィンドウを取得します。
Windows でカーネルイベントが欠落する問題を修正しました。Windows Defender の干渉により、タイムラインスナップショットでカーネルサンプリングイベントが欠落していました。
さまざまなマイナーな改善とバグ修正。
dotTrace 2024.1
MAUI フレームワークに基づいてアプリケーションをプロファイルできるようになりました。現在、dotTrace は以下をサポートしています。
macOS – Mac .NET 7.0+ をターゲットとする Catalyst アプリケーション。タイムラインプロファイリングのみ。
Windows – .NET 7.0+ をターゲットとする WinUI アプリケーション。すべてのプロファイリングタイプがサポートされています。すでに実行中のアプリケーションへのアタッチは、タイムラインタイプとサンプリングタイプでのみ使用できます。
このサポートは、dotTrace スタンドアロンおよび Rider と ReSharper に統合された dotTrace で利用できます。
dotTrace を使用すると、Unreal Engine アプリケーションのプロファイリングが容易になります。プロファイリングターゲットを構成するときに、Unreal Engine アプリケーションタイプを選択できるようになりました。これにより、Unreal Engine アプリケーションに関連するプロファイリング設定が事前に定義されます。
プロファイリングプリセット
dotTrace にユーザーインターフェース (UI) プリセットが含まれるようになりました。プリセットは UI を調整し、特定のアプリケーション ( 一般 (すべてのアプリケーションタイプ)、Unity 開発者、Unreal Engine 開発者 ) に関連するプロファイリング設定のみを表示します。
macOS のサポートの改善
macOS のプロファイリングを改善しました:
現在、dotTrace のスタンドアロンバージョンでは、実行可能ファイルの代わりにアプリケーションバンドル (.app) を指定できるようになりました。
Rider の dotTrace は、macOS 実行構成をプロファイルできます。次のターゲットフレームワークがサポートされています: net7.0-macos、net8.0-macos、net7.0-maccatalyst、net8.0-maccatalyst、Xamarin.Mac。
dotTrace 2023.3
Windows でのタイムラインプロファイリングモードの構成の改善
Windows でタイムラインプロファイリングセッションを構成するときに、次の詳細オプションを指定できるようになりました。
サンプリングレート – データの精度とスナップショットサイズ間の最適なバランスを見つけることができます。ゲーム開発用の高速サンプリングモードもサポートされています。
ネイティブ割り当て用の ... KB ごとのサンプル割り当て – 収集されるデータの量、つまりスナップショットサイズを削減することで、スナップショット分析のパフォーマンスを向上させることができます。
ネイティブシンボルファイルをバックグラウンドでダウンロード – プロファイリングセッション中にシンボルファイルをダウンロードして、スナップショットの取得にかかる時間を短縮します。
ソースビューでのデータのプロファイリング
呼び出しツリーを分析する代わりに、ソースコード内でパフォーマンスプロファイリングデータを直接表示できるようになりました。ソースビューには、コードの特定の行の時間分布が表示されます。現時点では、この機能は Windows で作成されたタイムラインスナップショットで利用できます。
Linux と macOS のフレームグラフチャート
現在、Linux および macOS 上の dotTrace では、タイムラインスナップショットのフレームグラフチャートとしてコールツリーを表示できます。
ネイティブコード分析の改善
Windows で作成されたタイムラインスナップショットのネイティブメソッドのソースコードを表示できるようになりました。
マネージドスレッドがない場合、デフォルトでネイティブスレッドが表示されるようになりました。
その他の改善
タイムラインプロファイリングモードは、.NET および .NET Core フレームワークの
System.Data.SqlClient
データプロバイダーをサポートするようになりました。SQL クエリフィルターで対応するイベントを表示できます。dotTrace ビューアーの検索ウィンドウ内でパフォーマンスメトリクスを表示できるようになりました。
サードパーティツールとの統合のサポートが Linux および macOS で利用できるようになりました。
バージョン 2023.3 以降、dotTrace はリモートプロファイリングをサポートしなくなりました。代わりにコマンドラインプロファイラを使用してください。
dotTrace 2023.2
サンプリング、トレース、行ごとのスナップショットのためのスレッドによるグループ化
呼び出しツリーでは、呼び出しスタックを個々のスレッドごとにグループ化できるため、スレッド固有のパフォーマンスの問題についてより深いインサイトが可能になります。
Linux および macOS のソースビューツールウィンドウ
Linux および macOS 上の dotTrace のスタンドアロンバージョンでは、ソースビューウィンドウが表示されます。呼び出しツリーで呼び出しを選択すると、ソースビューによって対応するメソッドのソースコードが表示されます。
その他の改善とバグ修正
タイムラインスナップショットの場合、dotTrace ビューアーは、すべてのスレッドをネイティブとして表示するのではなく、ネイティブスレッドの名前を表示するようになりました。この機能は、Unity 開発者に有益であり、特定の Unity スレッドを区別できるようになります。Windows でのみ利用可能です。
dotTrace Viewer のソースビューウィンドウに、コードの各行の呼び出し数が表示されるようになりました。
dotTrace 2023.1
Linux および macOS 上の dotTrace スタンドアロン
dotTrace のスタンドアロンバージョンが、Linux および macOS で利用できるようになりました。これで、パフォーマンススナップショットの収集と分析を含む、これらのオペレーティングシステムでの完全なプロファイリングワークフローを実行できます。
dotTrace 2022.3
.NET 7 のサポート
dotTrace では、Windows、macOS、Linux 上の .NET 7 アプリケーションをプロファイリングできるようになりました。
次の問題に直面する可能性があることに注意してください。
アプリケーションが動的アセンブリを作成する場合、プロファイラーはこれらのアセンブリからのデータ (メソッド名) を表示しません。これらは Unresolved として表示されます。
プロファイラーをアタッチしてアプリケーションをプロファイリングすると、セッション中にアプリケーションがクラッシュする可能性があります。
どちらの問題も、今後の .NET 7 バグ修正リリースで修正される予定です。
改善された ARM CPU サポート
Linux arm32 – Linux の arm32 CPU で dotTrace コマンドラインプロファイラーを実行できるようになりました。サポートされているフレームワーク: .NET Core 3.1、.NET 5.0 - 7.0。タイムラインプロファイリングタイプは、.NET 6.0+ アプリケーションでのみサポートされていることに注意してください。
Windows arm64 – Windows の arm64 CPU で dotTrace を使用できるようになりました。これは、スタンドアロンの dotTrace、Rider の dotTrace、Visual Studio の dotTrace、および dotTrace コマンドラインツールのすべてのバージョンに適用されます。
パフォーマンスビューアーの破棄
このリリースの前は、サンプリング、トレース、行単位のパフォーマンススナップショットは従来のパフォーマンスビューアーで開く必要がありましたが、タイムラインスナップショットは最新のタイムラインビューアーで開いていました。これにより、2 つのビューアーのユーザーインターフェースとスナップショット分析へのアプローチが異なるため、全体的なユーザーエクスペリエンスが悪化しました。現在、パフォーマンスビューアーを廃止し、dotTrace ビューアー (以前のタイムラインビューアー) を採用しています。dotTrace はそれを使用して、すべてのタイプのスナップショットを開きます。それでも、破棄された Performance Viewer を引き続き使用したい場合は、そのようなオプションがまだあります。
スナップショット分析の改善
dotTrace ビューアー (以前のタイムラインビューアー) はすべてのタイプのスナップショットを開くようになったため、パフォーマンススナップショットのすべての強力な機能を使用できます。
サンプリング、トレース、行ごとのスナップショットの比較は、新しい「フィルターとしての比較」という概念により、より簡単になりました。
これで、サンプリング、トレース、行ごとのスナップショットでサブシステムをフィルター処理できるようになりました。
dotTrace Viewer はプレーンリストビューを取得します。さらに、サンプリング、トレース、ラインごとのスナップショットだけでなく、タイムラインのスナップショットにも使用できます。
dotTrace 2022.2
現在、dotTrace は、Windows カーネル呼び出し (ntoskrnl.exe)、デバイスドライバー呼び出し (*.sys) などを含む、ネイティブシステムコールの詳細をタイムラインコールツリーに表示します。
ネイティブプロファイリングは、すべての dotTrace バージョン (スタンドアロン、コマンドラインツール、および ReSharper と Rider に統合された dotTrace) によって Windows でのみサポートされることに注意してください。
JetBrains Rider の改善における dotTrace
プロファイリングプロセスを開始するために Unity エディターを再起動する必要がなくなりました。プロファイラーは、実行中の Unity プロセスにアタッチおよびデタッチできるようになりました。
dotTrace 2022.1
musl ベースの Linux ディストリビューションのサポート
dotTrace コマンドラインツールは、Alpine バージョン 3.13 – 3.15 をサポートするようになりました。次の CPU とフレームワークがサポートされています。
x64:.NET Core 3.1、.NET 5.0 – 6.0。
arm64:.NET 5.0 – 6.0。
これで、
dotnet-trace collect
で収集された NetTrace ファイルを開くことができます。dotTrace ホームメニューから、スナップショットを開くをクリックして、.nettrace ファイルを選択します。現在、dotTrace は、Windows (.NET Core、.NET 5+) 上の Microsoft.Data.SqlClient プロバイダーからの SQL Server イベント、および macOS と Linux (.NET Core 3.0+、.NET 5+) をサポートしています。
dotTrace ホームでのキーボードナビゲーション
キーボードの組み合わせのみを使用して、dotTrace ホームウィンドウを移動できるようになりました。マウスは必要ありません。各 UI エレメントは、キーまたはキーシーケンスに割り当てられます。割り当てられたキーを表示し、UI 要素を操作する方法は 2 つあります。
Alt キーを押しながら、キーまたはキーシーケンス(デフォルト)を押します。
モード切り替えキーを押してから、キーまたはキーシーケンスを押します。
dotTrace ホームで使用するものを選択できます | 設定。
これで、特別なアイコンをアプリケーションウィンドウにドラッグするだけで、プロファイラーをすでに実行中のアプリケーションにアタッチできます。
dotTrace ホームウィンドウのスナップショットページを改善
スナップショットの名前を編集できるようになりました。
対応するファイルを dotTrace ホームウィンドウにドラッグして、スナップショットを開くことができるようになりました。
スナップショットリストは、dotTrace の起動間の並べ替え状態を保持するようになりました。
スナップショットリストは、システムの日付形式を使用するようになりました。
その他の改善
スナップショットの自動保存を無効にできるようになりました。その場合、タイムラインビューまたはパフォーマンスビューアーを閉じると、dotTrace は収集されたスナップショットを保存するかどうかを尋ねてきます。
タイムラインビューアーのスレッドフィルターにスレッドを固定できるようになりました。
Configuration2Xml ツールは、dotTrace ホームウィンドウと同じ UI を使用するようになりました。
プロファイルする多数の管理対象子プロセスを作成するルートプロセスをプロファイルするとします。ルートプロセス自体は、何らかの理由でプロファイリングから除外されます(たとえば、シェルスクリプト、ネイティブプロセス、単にプロセスフィルターを使用して除外する場合があります)。
前 : プロファイラーは、フィルターに一致するすべての子プロセスのプロファイリングを開始します。子プロセスが終了すると、プロファイラーは 1 秒間待機します。この時間内に新しい子プロセスが開始されない場合、プロファイラーはプロファイリングセッションを終了します。ルートプロセスが子プロセスをより長い遅延で開始する場合、これは問題になる可能性があります。
現在 : ルートプロセスの実行中、プロファイラーはプロファイリングセッションを停止しません。ルートプロセスが機能しなくなると、プロファイラーは 1 秒遅延アプローチに切り替わります。(編集)
dotTrace 2021.3
.NET6 のサポート
dotTrace では、Windows、macOS、Linux 上の .NET 6 アプリケーションをプロファイリングできるようになりました。Linux および macOS 上のアプリケーションをプロファイリングするには、JetBrains Rider または dotTrace のコマンドラインプロファイラーのいずれかを使用する必要があることに注意してください。
AppleM1 のサポート
現在、dotTrace コマンドラインツールは、AppleM1 プロセッサーを搭載したコンピューターで動作します。このツールは、.NET 6 アプリケーション(ネイティブモード)および .NET 5 アプリケーション(Rosetta 2 モード)のプロファイリングをサポートします。
タイムラインスナップショットの UI 状態を保存する
タイムラインスナップショットを閉じると、dotTrace はユーザーインターフェースの状態(選択した時間間隔、適用されたフィルターなど)を保存します。次にスナップショットを開くと、dotTrace は UI の状態を復元します。
パフォーマンスの向上
非同期呼び出しを多用するアプリケーションのタイムラインプロファイリングのパフォーマンスオーバーヘッドを削減しました。タイムラインスナップショットでのオープンとフィルタリングのパフォーマンスが向上しました。
macOS および Linux での TPL イベントのサポート
現在、dotTrace コマンドラインツールと Rider の dotTrace を使用すると、macOS および Linux の非同期呼び出しに関するデータを収集できます。このデータを取得するには、タイムラインプロファイリングモードを使用します。dotTrace は、.NET 5+ アプリケーションの TPL イベントを完全にサポートします。呼び出しツリーには、待機と継続を含む非同期呼び出しが表示されます。.NET 3.1 アプリでは、タスク API のみがサポートされています。呼び出しツリーには、タスクのスケジュールと実行の個別のノードが表示されますが、async/await 呼び出しに関するデータは表示されません。
macOS および Linux の子プロセスのサポートが改善
現在、dotTrace コマンドラインツールと Rider の dotTrace は、タイムラインプロファイリングモードで macOS および Linux 上のアプリケーションの子プロセスをプロファイリングできます。このサポートは、.NET 5 以降のアプリケーションでのみ利用できます。
dotTrace 2021.2
これで、Windows 上のネイティブアプリケーションのプロファイルを作成することができます。プロファイリングセッションを開始するときに、リモートサーバーからネイティブソースシンボルファイルをダウンロードするオプションがあります。ネイティブプロファイリングは、タイムラインプロファイリングタイプでのみ使用できます。
macOS および Linux のタイムラインプロファイリング
タイムラインプロファイリングタイプを使用して、macOS および Linux 上の .NET Core および .NET アプリケーションをプロファイリングできるようになりました。
dotTrace 2021.1
dotTrace のホーム画面を完全に作り直しました。これで、新しいプロファイリングセッションの構成と開始、スナップショットの操作、その他の基本的な操作の実行がはるかに簡単になりました。
.NET グローバルツールとしてのコマンドラインプロファイラー
これで、dotTrace コマンドラインプロファイラーを .NET グローバルツールとしてインストールして使用できます。
dotTrace 2020.3
.NET5 のサポート
dotTrace では、Windows、macOS、Linux 上の .NET 5 アプリケーションをプロファイリングできるようになりました。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 (GLIBC_2.23 以降を搭載したすべてのディストリビューション) 用の dotTrace コマンドラインプロファイラーを使用すると、ARM64 システム上のアプリケーションをプロファイリングできます。
コマンドラインプロファイラーを使用すると、コマンドを stdin またはファイルに送信することにより、プロファイリングセッションを制御できます(スナップショットの作成、プロファイルされたプロセスからの切り離しなど)。
新しい自己プロファイリング API(アプリケーションが自分でプロファイリングセッションを初期化および開始できる API)は、はるかに使いやすくなっています。セルフプロファイリング API は、NuGet パッケージとして配布されます。
dotTrace 2020.1
Linux および macOS のサポートの改善
これで、トレースプロファイリングモードを使用して、macOS および Linux 上の .NET Core アプリケーションをプロファイリングできるようになりました。これを行うには、JetBrains Rider または dotTrace のコマンドラインプロファイラーを使用する必要があります。
これで、Linux で実行中のプロセスにプロファイラーを接続できます。
Now, you can navigate through 呼び出しツリー using the 次の重要なコール action. Press Ctrl+Shift+Right and dotTrace will navigate you to a node that is most relevant for further analysis (for example, a node with high own execution time).
この機能は、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 Core3.0 の完全サポート。
dotTrace は、.NET Core 3.0 Preview7 プロセスに接続できるようになりました。
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 ホーム設定のボタンを使用してスナップショットキャッシュファイルを強制的に削除できます。これにより、既存のスナップショットの読み込みが遅くなりますが、ディスク領域がいくらか解放されます。
dotTrace 2017.1
Visual Studio 2017 のサポート。
ドラッグアンドドロップでアタッチします。これで、ドラッグアンドドロップを使用して、プロファイラーを実行中のアプリケーションに接続できます。単純に、プロファイリングするアプリケーションウィンドウに特別なアイコンをドロップします。
dotTrace ホームからスナップショットファイルを開きます。これで、dotTrace ホームウィンドウから直接 .dtp および .dtt スナップショットファイルを開くことができます。
dotTrace 2016.3
Visual Studio 2017 RC の初期サポート。
タイムラインビューアーのサブシステム。タイムラインビューアーは、パフォーマンスビューアーの最大の機能の 1 つであるサブシステムを取得します。サブシステムの仕組みは非常に単純です。ほとんどの場合、各サブシステムは特定のネームスペースまたはアセンブリ内で行われた呼び出しをグループ化するだけです。特定の呼び出しサブツリーの時間がさまざまなコンポーネント(ユーザーコードとシステムコード、WPF、LINQ、コレクション、文字列など)の間でどのように分散されているかを迅速に評価する必要がある場合に非常に役立ちます。
ネイティブメモリ割り当てを分析します。ネイティブメモリ割り当てイベントフィルターを使用すると、どのメソッドが割り当てを行っているのかを確認し、ネイティブメモリに関連するすべての問題を分析できます。
アプリケーションのデバッグ出力を分析します。デバッグ出力フィルターは、高度なデバッグに非常に役立ちます。選択すると、タイムラインには、アプリケーションがデバッグ出力に書き込むイベント (
Debug.Write
システムメソッドなど) のみが表示されます。イベントウィンドウ。イベントツールウィンドウには、イベントログ(プロファイルされたアプリケーションで発生したイベントのリスト: ファイル操作、JIT、SQL クエリなど)が表示されます。
.NETCore アプリケーションのプロファイリング。コンピューターに .NETCore ツールがインストールされている場合は、追加のアクションなしで .NETCore アプリケーションのプロファイルを作成できます。
dotTrace 2016.2
タイムラインビューアーでの再帰呼び出しの折りたたみ。再帰呼び出しを 1 つのノードに折りたたむことによって、深い再帰呼び出しスタックの分析を単純化します。
dotTrace 2016.1
Visual Studio のスレッドダイアグラム。
Visual Studio に統合された dotTrace ビューアーは、スタンドアロンのビューアーとまったく同じスレッドダイアグラムを取得するため、これを使用してスレッド、時間範囲を選択し、もちろん、スレッドアクティビティとフィルター処理された時間間隔を表示できます。
スレッドダイアグラムのスマートツールチップ。スレッドダイアグラムの任意のスレッドにマウスを置くと、ツールヒントに、この特定の時点でこのスレッドが実行していたことに関する詳細情報が表示されます。つまり、どのメソッドが実行されたか、スレッドがどのファイルを操作したか (ファイル I/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
Windows ストアアプリケーションのプロファイリング
Microsoft Visual Studio 2012 および ReSharper 7.1 との統合
新しい時間測定方法
dotTrace 5.0
.NET プロセスへのアタッチ
改善されたリモートプロファイリング
CLR バージョン 2.0 および 4.0 を対象とするアプリケーションの同時プロファイリング
IIS Express のサポート
XBAP アプリケーションのプロファイリング
メッセージポンピングを行うスレッドには特別なアイコンが表示されます
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 プロセスのプロファイリング。
アプリケーションのリモートプロファイリング
アプリケーションを行ごとにプロファイリングします。
実行時間を測定する新しい方法: 経過時間 (パフォーマンスカウンター)。
高い正確性オプションを使用すると、プロファイラ内で費やされた時間を考慮に入れることができます。
同じ名前のスレッドをマージします。
パフォーマンススナップショットの操作の改善点:
最大数百ギガバイトのサイズのスナップショットを処理します。
新しいプレゼンテーションビュー: 概要。
名前の一致を含む検索とナビゲーションの速度が向上しました。
関数へのテキストアノテーションの追加。
拡張フィルター。
ズームしたい機能やクラスのための選択的なラインバイラインプロファイリング。
改善されたソースコードプレビュー。
Microsoft Visual Studio との統合:
Visual Studio 2005、2008、2010 との統合
Visual Studio からプロファイルを作成するときに、より多くのアプリケーションタイプをサポートします。
Visual Studio、JetBrains ReSharper、dotTrace を使用して単体テストをプロファイリングします。
エディション:
2 つのエディション: 標準と Professional。
関連ページ:

dotTrace ビューアーの概念
dotTrace ビューアーは、プロファイリングデータをフィルター処理して視覚化できるフィルターとダイアグラムのセットです。プロファイリングタイプとユーザーインターフェース:dotTrace ビューアーのユーザーインターフェースは、現在分析しているスナップショットの種類によって異なります。サンプリング、トレース、および line-by-line スナップショットでは、タイムラインスナップショットよりもデータが少なくなります。以下のイメージは、dotTrace Viewer で開いた同じアプリケーシ...

プロファイル MAUI アプリケーション
MAUI アプリケーションは、.NET マルチプラットフォームアプリ UI (MAUI) フレームワークを使用して構築されたクロスプラットフォームソリューションであり、開発者が単一の共有コードベースを使用して Android、iOS、Windows、macOS 用のアプリケーションを作成できるように設計されています。現在、dotTrace は以下をサポートしています。macOS – Mac .NET 7.0+ をターゲットとする Catalyst アプリケーション。タイムラインプロファイリングの...

呼び出しツリー
呼び出しツリーはメソッド実行パスを示します。ツリー内の各メソッドノードは、特定のスレッドによって実行されるトップレベルのメソッドを表します。メソッドノードには、呼び出されたメソッドとプロファイリング時に収集されたメトリクスがリストされます。呼び出しツリーを使用して: アプリケーションアクティビティの簡単な概要を取得する: 最も「高額な」呼び出しを移動するまたはフレームグラフを使用します。最も遅いメソッド (最も時間がかかるメソッド、または頻繁に呼び出されるメソッド) の実行パスを次の方法で調べます。...

ソースビュー
ソースビューウィンドウには、プロファイルされたアプリケーションのソースコードが表示されます。呼び出しツリーでメソッドを選択すると、ソースビューはその基になるソースコードを自動的に見つけます。ソースコードを表示するには、dotTrace にプロジェクトシンボルファイルを提供するか、プロジェクトソースコードへのパスを指定する必要があります。他の dotTrace Viewer ビューとは異なり、ソースビューはフィルターとして機能せず、ソースコードと特定のコード行の時間分布のみを表示します (Wind...

スナップショットの比較
アプリケーションが進化するにつれて、コードの変更がパフォーマンスに与える影響を確認する機能が必要になります。例: コード最適化前後の関数の実行時間の違いを調べる、関数呼び出しの数が 2 つの異なる呼び出しスタックで大きく異なるかどうかを調べる、dotTrace は、プロファイリングスナップショットを比較することで、このような変更を追跡できます。2 つのスナップショットを比較するには比較するスナップショットを dotTrace Viewer で開きます (スナップショット A)。フィルター | 比較で...

サブシステム
サブシステムフィルターを使用すると、特定のコールツリーの時間が、ユーザーとシステムコード、WPF、LINQ、コレクション、文字列などのさまざまなコンポーネントにどのくらい分散しているかをすばやく評価できます。サブシステムの仕組み:いくつかの例外 (下記の特別サブシステムを参照) を除いて、各サブシステムは、特定の名前空間またはアセンブリ内で行われた呼び出しを単純にグループ化します。例:、アセンブリで宣言されたメソッドのすべての呼び出しは、WPF サブシステムにグループ化されます。サブシステムフィ...