dotMemory の新機能

dotMemory の新機能

このページでは、最近の dotMemory および dotMemory ユニットリリースの更新について説明します。ハイライトには、コマンドラインプロファイリングツール、.NET アプリケーションのサポート、メモリダンプの分析などが含まれます。

dotMemory をダウンロード

30 日間の無料トライアルをご利用いただけます

Support for MAUI applications

MAUI アプリケーションのサポート 2024.1

これで、MAUI フレームワークに基づいてアプリケーションをプロファイルできるようになりました。

現在、dotMemory は、Windows 上の .NET 7.0+ をターゲットとする WinUI アプリケーションのプロファイリングをサポートしています。

このサポートは、dotMemory スタンドアロンおよび Rider と ReSharper に統合された dotMemory で利用できます。

macOS のサポートの改善 2024.1

  • 現在、dotMemory のスタンドアロンバージョンでは、実行可能ファイルの代わりにアプリケーションバンドル (.app) を指定できるようになりました。
  • Rider の dotMemory は、macOS 実行構成をプロファイルできます。次のターゲットフレームワークがサポートされています: net7.0-macosnet8.0-macos
New views in dotMemory for Linux and macOS

Linux および macOS の dotMemory の新しいビュー 2024.1

Linux 上の dotMemory および macOS のスタンドアロンバージョンは、Windows 版にさらに近づき、次の機能を提供します。

  • オブジェクトセットを分析するための 同様の保持ビュー
  • ドミネーターオブジェクトを分析するための サンバーストダイアグラム

凍結オブジェクトヒープのサポート 2024.1

凍結オブジェクトヒープ内の不変オブジェクトに関する情報は、タイムライン、 ヒープフラグメンテーションダイアグラム、および 世代ビューに表示されます。

Linux 上の dotMemory スタンドアロンおよび macOS 2023.3 ベータ

Linux および macOS オペレーティングシステム上で dotMemory のスタンドアロンバージョンを実行できるようになりました。

Linux 2023.3 でプロセスダンプを分析する

dotMemory では、Linux 上でプロセスダンプを通常のスナップショットとしてインポートして分析できるようになりました。dotMemory の Linux バージョンでは、Linux OS 上で実行されているプロセスから収集されたダンプのみをインポートできることに注意してください。

JetBrains Rider でのスナップショット分析 2023.2

2023.2 より前は、メモリ割り当て分析には Rider の dotMemory のみを使用できました。2023.2 では、dotMemory のスタンドアロンバージョンと同様に、メモリスナップショットを収集し、Rider で分析できます。

  • スナップショット分析は、Windows、Linux、macOS で利用できます。
  • Windows では、プロセスダンプをインポートして分析することもできます。
  • 自動スナップショットインスペクションや作成スタックトレースビューなど、一部の機能とビューは使用できません。

Windows ARM64 2022.3 のサポート

これで、Windows の ARM64 CPU で dotMemory を使用できるようになりました。これは、スタンドアロンの dotMemory、Rider の dotMemory、Visual Studio の dotMemory、および dotMemory コマンドラインツールのすべてのバージョンに適用されます。

Linux ARM32 2022.3 のサポート

Linux の ARM32 CPU で dotMemory コマンドラインプロファイラーを実行できるようになりました。サポートされているフレームワークは、.NET Core 3.1 および .NET 5.0 – 7.0 です。

dotMemory の JetBrains Rider 2022.3

Windows に加えて、Linux の JetBrains Rider および macOS で dotMemory を使用できるようになりました。 実行ウィジェットと 実行 | プロファイラー構成の切り替えメニューで、 メモリ (サンプリングされた割り当て) メモリ (フル割り当て) という 2 つの新しいプロファイリングモードを使用できます。これらの違いについては、dotMemory の ヘルプで詳しく知ることができます。

実行メニューから実行中のプロセスにプロファイラーをアタッチし、リアルタイムで タイムライングラフの展開を監視できます。間隔を選択して メモリの割り当てビューを開きます。これは dotMemory スタンドアロンと同じです。割り当てられたオブジェクトと特定の時間枠の割り当て呼び出しツリーを分析できます。

残念ながら、このバージョンではメモリスナップショットを収集することはまだできません。

dotMemory コマンドラインプロファイラー 2022.3 の改善

コマンドラインプロファイラーに --saving-mode 引数が追加されました。これにより、dotMemory ワークスペースをいつ保存するかの条件を設定できます。

JetBrains Rider の dotMemory2022.2

dotMemory が JetBrains Rider で利用できるようになりました。

  • メインメニューの 実行ウィジェットと 実行 | プロファイラー構成の切り替え メモリ (サンプリングされた割り当て) メモリ (フル割り当て) という 2 つの新しいプロファイリングモードを使用できます。これらの違いの詳細については、dotMemory ヘルプを参照してください。
  • 実行メニューから実行中のプロセスにプロファイラーをアタッチできます。
  • 間隔を選択して メモリの割り当てビューを開くと、リアルタイムで タイムライングラフが展開するのを確認できます。これは dotMemory スタンドアロンの同じビューに相当し、特定の時間枠の分析をより深く掘り下げることができます。

dotMemory プラグインはスナップショットの収集を許可せず、2022.2 リリースの Windows でのみ機能します。

musl ベースの Linux ディストリビューション 2022.1 のサポート

dotMemory コマンドラインツールは、Alpine バージョン 3.13 – 3.15 をサポートするようになりました。次の CPU とフレームワークがサポートされています。

  • x64:.NET Core 3.1、.NET 5.0 – 6.0。
  • arm64:.NET 5.0 – 6.0。

改善されたプロファイリング API 2022.1

プロファイリング API を使用してスナップショットを取得するときに、DotMemory.GetSnapshot("snapshot name"); を使用してスナップショット名を指定できるようになりました。

名前は dotMemory ホーム | スナップショットページに表示されます。

ドラッグアンドドロップでアプリケーションに添付 2022.1

これで、特別なアイコンをアプリケーションウィンドウにドラッグするだけで、プロファイラーをすでに実行中のアプリケーションにアタッチできます。

コマンドラインツールの改善 2022.1

dotMemory コマンドラインツールは、スナップショットを保存するときに進行状況を表示するようになりました。

類似保持ビュー 2022.1 のパフォーマンスの向上

同様の保持ビューは、データをはるかに高速に処理するようになりました。

Apple シリコンプロセッサーのサポート 2021.3

dotMemory コマンドラインツールは、Apple シリコンプロセッサーを搭載したコンピューターで動作するようになりました。これで、dotMemory CLT を使用して、.NET 6 アプリケーション(ネイティブモード)および .NET 5 アプリケーション(Rosetta 2 モード)のプロファイルを作成できます。

パフォーマンスの向上 2021.3

ドミネーターツリー(オブジェクト保持グラフ)の背後にあるアルゴリズムを完全に作り直しました。オブジェクトセットに数億のオブジェクトが含まれている場合でも、特定のビューを開くのに dotMemory は数分しかかかりません。

サンプリングされたメモリ割り当てデータ 2021.3

dotMemory は、ETW イベントに基づいてメモリ割り当てに関するサンプルデータを取得できるようになりました。割り当てデータを収集する従来の(統計的)方法と比較すると、サンプリングの精度は低くなりますが、いくつかの利点があります。

  • サンプリングされた割り当てデータは、パフォーマンスを低下させることなく収集されます。
  • このデータ収集を明示的に有効にする必要はありません。常にアクティブです。
  • すでに実行されているアプリケーションにプロファイラーを接続するときに、サンプリングされた割り当てデータを収集することもできます。

この機能は Windows でのみ使用できることに注意してください。

サブシステムビュー 2021.3

これで、 サブシステムビューを使用して、メモリ割り振りデータを分析できます。サブシステムは、同じタイプ、名前空間、アセンブリに属するすべてのメソッドをグループ化します。結果のビューには、サブシステムによって作成されたオブジェクトと、各サブシステムのマージされた呼び出しツリーが表示されます。

メモリ割り当て分析 2021.2 の更新

このリリースでは、メモリ割り当ての分析方法を改善し続けています。2 つの新しいタブが メモリの割り当てビューに追加されました。

  • メソッドタブでは、メモリを割り当てたメソッドのプレーンリストを分析できます。
  • 呼び出しツリータブでは、割り当て呼び出しツリーを分析できます。ツリーの各ノードには、呼び出されたメソッドだけでなく、呼び出しによって割り当てられたオブジェクトも表示されます。

改善型フィルター 2021.2

dotMemory ビューの上部にある検索バーがより柔軟になり、使いやすくなりました。

  • フィルターには、検索範囲を絞り込むための追加オプションがあります。#struct(値型のみで検索)、#NS(型のみ)、#NS(メソッドのみ)、#ns(名前空間のみ)。
  • 特定のコンテキストで可能なすべてのフィルターのヘルプを取得できます。

オブジェクトエクスポート 2021.2 の改善

現在、次のことが可能です。

  • オブジェクトデータをエクスポートするときにトラバーサル深度を指定します。
  • 1 つ以上のタイプを選択し、それらのデータを 1 つのファイルにエクスポートします。
  • インスタンス数 発信参照 到達不能なオブジェクトビューからオブジェクトデータをエクスポートします。

コンソールプロファイラーアップデート 2021.2

サービスメッセージを使用して、メモリ割り当てデータの収集を有効または無効にすることができるようになりました。

スタックトレースをクリップボードにコピー 2021.2

dotMemory でクリップボードにコピーされたスタックトレースが、ReSharper を使用して Rider/Visual Studio で自動的に開かれるようになりました。

新しいホーム画面 2021.1

dotMemory ホーム画面を完全に作り直しました。新しいプロファイリングセッションの構成と開始、スナップショットの操作、その他の基本的な操作がはるかに簡単になりました。

Support for Linux dumps

Linux ダンプのサポート 2021.1

これで、gcore を使用して Linux システムで収集された .NETCore アプリケーションのダンプを分析できます。

Improved memory allocation analysis

改善されたメモリ割り当て分析 2021.1

現在、dotMemory では、任意の時間間隔でメモリ割り当てを分析できます。タイムラインで間隔を選択するだけで、 メモリの割り当てビューに、この間隔で割り当てられたオブジェクトと、割り当てたスタックトレースが表示されます。

dotMemory をダウンロード

30 日間の無料トライアルをご利用いただけます