.NET Core または .NET アプリケーションのプロファイリング
Windows
dotMemory をスタンドアロンアプリケーションとして実行する。dotMemory ホームウィンドウが開きます。
実行構成を追加します – プロファイルされたアプリケーションの実行方法を dotMemory に指示する構成です。
プロファイルするものを選択する、新しいプロセスの実行で、
実行構成を追加するをクリックします。新規実行構成ウィザードで、.NET と .NET Core を選択し、次へをクリックします。
アプリケーションオプションを指定します。
アプリケーション実行可能ファイルへのパス (自己完結型デプロイの場合)、またはライブラリファイルへのパス (フレームワーク依存のデプロイの場合)。
実行可能ファイルのコマンドライン引数(必要な場合)。
アプリケーション作業ディレクトリへのフルパス(デフォルトでは、実行可能ファイルが配置されているのと同じディレクトリです)。
環境変数を設定するを使用すると、特定の環境変数を使用してプロファイルされたアプリケーションを実行できます。各変数は新しい行で指定する必要があります。
保存をクリックします。
作成した実行構成が新しいプロセスの実行リストで選択されていることを確認してください。
プロファイルする方法を選択するで、プロファイリングオプションを指定します。
割り当てデータを収集する : Sampled (オブジェクトサイズの概算データ) と全部 (オブジェクトの数とサイズの正確なデータ) のいずれかを選択します。データ収集の詳細
オプションで、アプリケーションが多数のプロセスを作成し、特定のプロセスのみをプロファイリングする場合は、プロセスフィルターを構成します。
必要に応じて、他のプロファイリングオプションを指定します。
開始をクリックします。これにより、プロファイリングセッションが開始されます。
アプリケーションで特定のワークフローを実行するか(潜在的なメモリの問題を確認する場合)、特定のメモリの問題を再現します。スナップショットを取得するボタンを使用してメモリスナップショットを収集します。プロファイリングセッションを制御する方法の詳細
データを収集したら、プロファイリングされたアプリケーションを閉じるか、切り離すボタンを使用してプロファイラーをデタッチします。
dotMemory コマンドラインプロファイラーをダウンロードしてください。
アーカイブを解凍し、プロファイラーディレクトリを開きます。
コマンドラインプロファイラーを使用して、プロファイリングセッションを開始し、メモリスナップショットを取得します。例: 実行中のアプリケーションのスナップショットを即座に取得するには:
dotMemory.exe get-snapshot MyApp --with-max-memMyApp を起動し、定期的にスナップショットを作成するには:
dotMemory.exe start --trigger-timer=30s c:\MyApp\MyApp my-app-arg1
Linux および macOS
dotMemory をスタンドアロンアプリケーションとして実行する。dotMemory ホームウィンドウが開きます。
実行構成を追加します – プロファイルされたアプリケーションの実行方法を dotMemory に指示する構成です。
プロファイルするものを選択する、新しいプロセスの実行で、
実行構成を追加するをクリックします。新規実行構成ウィザードで、.NET と .NET Core を選択し、次へをクリックします。
アプリケーションオプションを指定します。
アプリケーションの実行可能ファイルに(それは自己完結型デプロイの場合)またはライブラリファイルへのパス(それはフレームワークに依存デプロイの場合)。
実行可能ファイルのコマンドライン引数(必要な場合)。
アプリケーション作業ディレクトリへのフルパス (デフォルトでは、実行可能ファイルが配置されているディレクトリと同じです)。
環境変数を設定するを使用すると、特定の環境変数を使用してプロファイルされたアプリケーションを実行できます。各変数は新しい行で指定する必要があります。
Web アプリケーションをプロファイリングし、プロファイリングの開始後にその URL が開かれるようにする場合は、URL を開くを選択して URL を指定します。in browser パラメーターを使用すると、URL を開くためのブラウザーを選択できます。
保存をクリックします。
作成した実行構成が新しいプロセスの実行リストで選択されていることを確認してください。
プロファイルする方法を選択するで、プロファイリングオプションを指定します。
割り当てデータを収集する : Sampled (オブジェクトサイズの概算データ) と全部 (オブジェクトの数とサイズの正確なデータ) のいずれかを選択します。データ収集の詳細
オプションで、アプリケーションが多数のプロセスを作成し、特定のプロセスのみをプロファイリングする場合は、プロセスフィルターを構成します。
必要に応じて、他のプロファイリングオプションを指定します。
開始をクリックします。これにより、プロファイリングセッションが開始されます。
アプリケーションで特定のワークフローを実行するか(潜在的なメモリの問題を確認する場合)、特定のメモリの問題を再現します。スナップショットを取得するボタンを使用してメモリスナップショットを収集します。プロファイリングセッションを制御する方法の詳細
データを収集したら、プロファイリングされたアプリケーションを閉じるか、切り離すボタンを使用してプロファイラーをデタッチします。
dotMemory コマンドラインプロファイラーをダウンロードしてください。
アーカイブを解凍し、プロファイラーディレクトリを開きます。
コマンドラインプロファイラーを使用して、プロファイリングセッションを開始し、メモリスナップショットを取得します。例: 実行中のアプリケーションのスナップショットを即座に取得するには:
./dotMemory.sh get-snapshot MyApp --with-max-memMyApp を起動し、定期的にスナップショットを作成するには:
./dotMemory.sh start --trigger-timer=30s ~/MyApp/MyApp my-app-arg1
関連ページ:
dotMemory を実行
dotMemory はいくつかの方法で起動できます。スタンドアロン dotMemory は、オペレーティングシステムにインストールされたスタンドアロンアプリケーションとして実行します。JetBrains Toolbox を使用して dotMemory をインストールして起動することを強くお勧めします。アプリケーションのソースコードがない場合、またはプロファイリングを実行するために IDE を起動したくない場合に推奨されます。詳細 JetBrains RiderJetBrains Rider で開かれた...
プロファイリングセッションの構成
プロファイリングセッションを構成するには、次のことを行う必要があります。プロファイルするアプリケーションを dotMemory で実行する方法を指定します。これは、実行構成を使用して行うことができます。すでに実行中のアプリケーションのプロファイルを作成する場合、この手順は必要ありません。必要に応じて、他のプロファイリングオプションとプロセスフィルターを構成します。1. 実行構成の作成:実行構成は、プロファイルされたアプリケーションをどのように実行するかを dotMemory に指示する方法です...
プロファイリングセッションの制御
プロファイリングセッションを実行すると、dotMemory は新しい分析タブを開き、プロファイリングされたアプリケーションを起動します。プロファイリングプロセスを制御するには、ページの上部にある次のボタンを使用します。スナップショットを取得するプロセスのリストで選択されたプロセスのメモリスナップショットを取得します。スナップショットは、収集されたスナップショット領域に追加されます。スナップショットを取得してもプロファイリングプロセスは中断されないため、別のスナップショットを取得できます (たとえ...
プロファイリング結果の分析
十分なプロファイリングデータを収集したら、メモリの問題の原因の特定 (分析ステップ) に進むことができます。最初にユーザーインターフェースを確認するセクションで説明したように、メモリ分析では、分析対象 (特定のオブジェクトセットまたはインスタンス) を継続的に選択し、これらの対象をさまざまな視点 (ビュー) から調べることを前提としています。この章では、dotMemory ビューと分析ワークフローについて詳しく説明します。分析の概要、インスペクションビュー、オブジェクトセットの分析、インスタンス...
IIS サーバー上のプロファイル Web アプリケーション
通常、Web アプリケーションのパフォーマンスの問題を特定するには、アプリケーションがすでにサーバー上で実行されている必要があります。次の表は、アプリケーションのプロファイリングに可能なすべてのオプションをまとめたものです。ローカルプロファイリング簡単な設定 / 使用: dotMemory の GUI を介してプロファイルします、dotMemory をサーバーにインストールして実行する必要があります。これは、セキュリティ上の制限や GUI の不在などにより不可能な場合があります。コマンドラインプ...