プロセスダンプの分析
たとえば、実稼働 Web サーバーの場合、コンピューターにプロファイラーをインストールして通常のメモリスナップショットを取得できない場合があります。通常、このような場合の最後の手段は、生のメモリダンプです。dotMemory を使用すると、自動インスペクションや保持ダイアグラムなどのすべての製品機能を含む、ダンプを通常のスナップショットとしてインポートして分析できます。
サポートされているフレームワーク | サポートする OS |
|---|---|
|
|
プロセスメモリダンプを取得する
いくつかのツールを使用してメモリダンプを取得できます。最も人気のある 2 つは、タスクマネージャー(オペレーティングシステムに付属)と ProcessExplorer です。
重要: タスクマネージャーで 32 ビットアプリケーションのダンプを取得するときは、必ず 32 ビットバージョンのツールを使用してください。C:\Windows\SysWOW64\taskmgr.exe でそれを見つけることができます。
dotMemory は、
gcoreおよびdotnet-dumpツールを使用して作成されたメモリダンプをサポートします。例: 1234 PID のプロセスのダンプを取得するには:sudo gcore 1234または
dotnet-dump collect -p 1234
プロセスメモリダンプをインポートする
ホームページの左側のパネルで、プロセスダンプのインポートをクリックします。
開いたダイアログで、目的のワークスペースファイルを選択し、オープンをクリックします。
その後、インポートされたダンプは通常の dotMemory ワークスペースに変換されます。
到達できないオブジェクト
メモリスナップショットを取得する前に、dotMemory は完全なガベージコレクションを強制します。一方、タスクマネージャーまたは別のツールでメモリダンプを取得する場合、ガベージコレクションは実行されません。その結果、メモリダンプには GC ルートからアクセスできないオブジェクトが含まれます。通常、これらのオブジェクトはガベージコレクション用にすでに準備されていますが、収集されていません。場合によっては、分析の対象となることがあります。dotMemory を使用すると、このようなオブジェクトを別のオブジェクトセットとして開くことができます。
到達できないオブジェクトのセットを開くには
メモリダンプをインポートして開きます。
インスペクションビューを開きます。
ヒープフラグメンテーションセクションで、到達不能オブジェクトリンクをクリックします。
