このページでは、dotMemory の最新の更新と変更内容を説明します。
無料 30 日間体験版をご利用可能です
2024.3 アップデートでは UX/UI 関連の多数の小さな改善を行い、全オペレーティングシステムの全 dotMemory バージョンで統一した外観と使い心地を提供するための最後の仕上げを行いました。
過去に UI を再設計した際に廃止された Creation Stack Trace(作成のスタックトレース)ビューが復活しました。 このビューにはオブジェクトが作成されるまでの関数のコールスタックが表示されるため、メモリに関する問題の根本的原因を発見しやすくなっています。
オブジェクトセットの Back Traces(バックトレース)ビューも再実装しました。 このビューの呼び出しツリーは反転しており、特定のオブジェクトセットを作成した関数を始点とし、呼び出しチェーンを下から上にさかのぼる呼び出しチェーンが表示されます。
ドミネーターツリーをつららチャート形式で表示し、ドミネーターと保持オブジェクトのメモリ消費量を確認できるようになりました。 この機能は Windows、Linux、および macOS のスタンドアロンバージョンの dotMemory と JetBrains Rider の dotMemory の両方で使用できます。
Call Tree(呼び出しツリー)をサンバーストチャート形式で可視化する機能はバージョン 2024.2 で導入されましたが、その機能を Windows、Linux、および macOS のスタンドアロンバージョンの dotMemory と JetBrains Rider の dotMemory の両方で使用できるようになりました。
Instances(インスタンス)ビューに新しいフィルターオプションを追加しました。
^nAsso.{5,}ID$
は nAssociatedObjectID.nAssociatedObjectID
に一致します。 これらの機能は、スタンドアロン版の dotMemory と JetBrains Rider の dotMemory で利用できます。
従来は Windows 版のみで提供されていた機能が Linux 版と macOS 版の dotMemory に導入されました。
これらの機能は、スタンドアロン版の dotMemory と JetBrains Rider の dotMemory で利用できます。
Call Tree(呼び出しツリー)を Sunburst(サンバースト)チャートとして表示し、メモリ割り当て量が最も多い関数をハイライトできるようになりました。 この機能は、スタンドアロン版の dotMemory(Linux および macOS)と JetBrains Rider の dotMemory(Windows、Linux、macOS)で使用できます。
このリリースでは、MAUI フレームワークベースのアプリケーションをプロファイリングできるようになりました。
現在、dotMemory は Windows の .NET 7.0 以上をターゲットとする WinUI アプリケーションのプロファイリングをサポートしています。
このサポートは、dotMemory スタンドアロンと Rider および ReSharper に組み込まれた dotMemory に提供されます。
.app
)を指定できるようになりました。 net7.0-macos
、net8.0-macos
です。 Linux と macOS の dotMemory のスタンドアロンバージョンに以下が導入され、Windows 版に近づきました。
凍結オブジェクトヒープのイミュータブルオブジェクトに関する情報は、タイムライン、Heap Fragmentation(ヒープの断片化)ダイアグラム、および Generations(生成)ビューに表示されます。
Linux および macOS オペレーティングシステムでスタンドアロン版の dotMemory を実行できるようになりました。
Linux の dotMemory でプロセスダンプを通常のスナップショットとしてインポートし、解析できるようになりました。 Linux バージョンの dotMemory は Linux OS の実行プロセスから収集されるダンプのみをインポートできることに注意してください。
2023.2 以前において Rider 内で dotMemory の使用ができたのは、メモリの割り当て解析を目的とする場合だけでした。 2023.2 では dotMemory のスタンドアロンバージョンと同様に Rider 内でメモリスナップショットの収集と解析を実行できます。
dotMemory を ARM64 CPU で動作する Windows で使用できるようになりました。 これは、dotMemory スタンドアロン、Rider の dotMemory、Visual Studio の dotMemory、および dotMemory コマンドラインツールの全バージョンに当てはまります。
dotMemory コマンドラインプロファイラーを ARM32 CPU で動作する Linux で実行できるようになりました。 サポートされているフレームワークは .NET Core 3.1 と .NET 5.0–7.0 です。
Windows に加えて、Linux および macOS 版の JetBrains Rider でも dotMemory を使用できるようになりました。 Run(実行)ウィジェットと Run(実行)| Switch profiler configuration(プロファイラー構成の切り替え)メニューには、Memory (sampled allocations)(メモリ(サンプリングした割り当て)) Memory (full allocations)(メモリ(全割り当て))という 2 つの新しいプロファイリングモードが追加されています。 これらのモードの詳しい相違点については、dotMemory のヘルプをご覧ください。
Run(実行)メニューから実行中のプロセスにプロファイラーをアタッチして、Timeline Graph(タイムライングラフ)がリアルタイムに展開する様子を確認できます。 Memory Allocations(メモリ割り当て)ビューを開く間隔を選択します。これは dotMemory Standalone と同じで、 特定期間の割り当てられたオブジェクトと割り当て呼び出しツリーを解析できます。
残念ながら、メモリスナップショットの収集はこのバージョンでも未対応です。
コマンドラインプロファイラーに --saving-mode
引数が追加され、dotMemory ワークスペースを保存するタイミングを設定できるようになりました。
dotMemory が JetBrains Rider で使用できるようになりました。
dotMemory プラグインではスナップショットを収集できません。また、2022.2 リリースでは Windows でのみ動作します。
dotMemory コマンドラインツールで Alpine バージョン 3.13 ~ 3.15 がサポートされるようになりました。 次の CPU とフレームワークがサポートされています。
プロファイリング API を使用してスナップショットを取得する際に、DotMemory.GetSnapshot("snapshot name");
を使用してスナップショット名を指定できるようになりました。
この名前は、dotMemory の Home(ホーム)| Snapshots(スナップショット)ページに表示されます。
専用のアイコンをアプリケーションウィンドウにドラッグするだけで、実行中のアプリケーションにプロファイラーを接続できるようになりました。
dotMemory コマンドラインツールで、スナップショットを保存する際の進捗が表示されるようになりました。
Similar Retention ビューでのデータ処理が大幅に高速化されました。
dotMemory のコマンドラインツールが Apple Silicon プロセッサを使用するコンピューターで動作するようになりました。 dotMemory CLT を使用して、.NET 6 アプリケーション(ネイティブモード)と .NET 5 アプリケーション(Rosetta 2 モード)をプロファイリングできます。
ドミネーターツリー(オブジェクト保持グラフ)の内部アルゴリズムを完全に作り直しました。 オブジェクトセットに非常に多くのオブジェクトが含まれている場合でも、dotMemory は特定のビューを数分で開くことができます。
dotMemory が ETW イベントに基づいて、メモリの割り当てに関するサンプリングデータを取得できるようになりました。 従来の(統計的な)割り当てデータの収集方法と比べると、サンプリング精度は劣るものの以下のような数多くのメリットがあります。
この機能は Windows でのみ提供されていることに注意してください。
Subsystems(サブシステム)ビューを使用して、メモリの割り当てデータを解析できるようになりました。 サブシステムは、同じ型、名前空間、またはアセンブリに属するすべてのメソッドをグループ化します。 生成されるビューには、サブシステムによって作成されたオブジェクトと各サブシステムごとにまとめられた呼び出しツリーが表示されます。
このリリースでは、引き続き、メモリの割り当てを解析する方法の改善に取り組みました。 Memory Allocation ビューに新しいタブが 2 つ追加されています。
dotMemory ビューの上部にある検索バーはより自由な設定が可能になり、使いやすくなりました。
以下を行えるようになりました。
メモリの割り当てデータの収集の有効化と無効化にサービスメッセージを使用できるようになりました。
dotMemory でクリップボードにコピーされたスタックトレースは、ReSharper が統合された Rider / Visual Studio で自動的に開かれるようになりました。
dotTrace / dotMemory のホーム画面を完全に作り直しました。これにより、新規プロファイリングセッションの構成と開始、スナップショットの処理、その他の基本操作の実行がはるかに楽になりました。
Linux システムで gcore
を使用して収集した .NET Core アプリケーションのダンプを解析できるようになりました。
dotMemory が任意の期間に対してメモリ割り当て解析を実行できるようになりました。 タイムラインで期間を選択すると、この期間に割り当てられたオブジェクトと、オブジェクトを割り当てたスタックトレースが Memory Allocation(メモリ割り当て)ビューに表示されます。
無料 30 日間体験版をご利用可能です