導入
dotMemory は、.NET ベースのアプリケーションのメモリ使用量を分析できるメモリプロファイリングツールです。これには、スタンドアロンアプリケーション(たとえば、C# または VB.NET で記述されたもの)、ASP.NET Web アプリケーション、任意の .NET プロセスなどが含まれます。
dotMemory のシステム要件の詳細については、このページを参照してください。
仕組みとこれが必要になる場合
dotMemory は実行中の .NET プロセスのメモリ使用量データを収集します。データは、メモリ内のオブジェクトに異なる視点を提供するさまざまなビューで表示されます。
dotMemory を使用すると、アプリのメモリ使用量に関する多くの質問に答えることができます。
このオブジェクトがメモリに残っているのはなぜですか(メモリリークの原因)
何がそんなにメモリを要しますか?
ガベージコレクションはアプリケーションのパフォーマンス (たとえば、高メモリトラフィック) にどのような影響を与えますか ?
メモリ割り当て / ディストリビューションパターンに違反がありますか?
ただし、緊急の場合 (すでにメモリの問題がある場合) は、メモリプロファイリングを行う理由の 1 つにすぎません。dotMemory は、日常の使用にも優れたツールです。例: コードに変更を適用した後、または新しいアルゴリズムを導入した後に dotMemory を実行します。dotMemory は、状況がどのように進んでいるかをすぐに示します。状況が良くなっているのか、悪化しているのか ? 必須ルーチンの 1 つとして dotMemory を使用すると、オンザフライでコードを改善できます。
dotMemory のバージョン
dotMemory は次のバージョンで利用可能です:
Windows 用の dotMemory スタンドアロンアプリケーション、macOS、Linux。Linux および macOS のバージョンには、ドキュメントに記載されているいくつかの制限があることに注意してください。
dotMemory は、Windows 版 JetBrains Rider、macOS、Linux に統合されています。機能面では、統合版はスタンドアロン版と同一です。Rider のドキュメントへの統合については、こちらを参照してください。
dotMemory は Windows 版 Visual Studio に統合されています。機能面では、統合版はスタンドアロン版と同一です。詳細
Windows 用 dotMemory コマンドラインツール、macOS、Linux。詳細については、このページを参照してください。
サポートされている CPU アーキテクチャ
CPU | スタンドアロン | コマンドラインツール | JetBrains Rider のプロファイラー |
---|---|---|---|
x86、x64 |
|
| Windows、Linux、macOS: x64 のみ |
ARM |
|
| Windows、Linux、macOS: arm64 のみ |
x86 および x64 CPU でサポートされるフレームワーク
Windows | macOS | Linux | |
---|---|---|
.NET フレームワーク 1.0 – 4.8 | 使用可能な範囲 : スタンドアロン、コンソールツール、Visual Studio、JetBrains Rider 注 :
| |
.NET Core1.0 – 3.1 .NET 5 – 9 | 使用可能な範囲 : スタンドアロン、コンソールツール、Visual Studio、JetBrains Rider 注 :
| 使用可能な範囲 : スタンドアロン、コンソールツール、JetBrains Rider 注 :
|
スナップショットとの互換性
バージョンで保存 | バージョンで開く | ||
2018.1 – 2019.1 | 2019.2 – 2019.3 | 2020.1 – 2025.1 | |
2018.1 – 2019.1 | | | |
2019.2 – 2019.3 | | | |
2020.1 – 2025.1 | | | |
関連ページ:

.NET コードのメモリプロファイリング
メモリプロファイリングの目的は、アプリケーションのメモリとパフォーマンスの問題の原因を見つけることです。これにより、「どの関数が大量のメモリを割り当てるのか ? 」、「なぜこのオブジェクトがメモリ内に残っている (メモリリーク) のか ? 」、「ガベージコレクションはパフォーマンスにどのような影響を与えるのか」などの質問に対する答えが得られます。JetBrains Rider は dotMemory と統合して、.NET アプリケーションのメモリプロファイリングを提供します。プロファイラーは、dot...

プロファイリング結果の分析
十分なプロファイリングデータを収集したら、メモリの問題の原因の特定 (分析ステップ) に進むことができます。最初にユーザーインターフェースを確認するセクションで説明したように、メモリ分析では、分析対象 (特定のオブジェクトセットまたはインスタンス) を継続的に選択し、これらの対象をさまざまな視点 (ビュー) から調べることを前提としています。この章では、dotMemory ビューと分析ワークフローについて詳しく説明します。分析の概要、インスペクションビュー、オブジェクトセットの分析、インスタンス...

dotMemory コマンドラインプロファイラーを使用する
dotMemory コマンドラインプロファイラーを使用すると、任意の .NET または .NET Core アプリケーション (すでに実行中のものも含む) をプロファイリングし、メモリスナップショットを取得できます。このツールは、さまざまなシナリオで役立ちます。リモートサーバーでのアプリケーションのプロファイリング例: これは、スタンドアロン dotMemory をサーバーにインストールできない場合に当てはまります。メモリスナップショットを収集するプロセスの自動化例: プロファイリングを継続的イ...