dotTrace 2020.2ヘルプ

dotTraceの新機能

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

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

dotTrace 6.0

  • アプリケーションに関する一時的な呼び出しスタックとスレッド状態データを収集する全く新しいタイムラインプロファイリングメソッド。

  • 再設計されたUI。現在、dotTraceインターフェースは、dotTraceのホームウィンドウ、パフォーマンスビューアー、タイムラインビューアーの3つの主要コンポーネントで構成されています。

  • プロファイリングセッションは、新しいdotTraceホームウィンドウで設定および開始されます。

  • より柔軟なサブシステム。サブシステム時間をどのように処理するかを指定できます。別々に表示されるか、呼び出しサブシステム時間に含まれるか、まったく考慮されないかのどちらかです。

  • 子プロセスのフィルタリング。アプリケーションのどの子プロセスをプロファイルしないかを指定できます。

dotTrace 5.5

  • サブシステムビューを使用してボトルネックを検索する新しい便利な方法

  • スナップショット内の関心のあるポイント間を素早くナビゲートするブックマーク

  • 改良されたフィルター

  • 再設計された概要

  • パフォーマンスの向上

dotTrace 5.3

dotTrace 5.0

dotTrace 4.5

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

最終更新日: 2020年8月06日

関連ページ:

プロファイラオプション

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

呼び出しツリー

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

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

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

プロファイリング結果の分析

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

アプリケーションのプロファイリング

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

.NETメモリ割り当て

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