プロファイリングセッションの構成
プロファイリングセッションを構成するには、次のことを行う必要があります。
プロファイルするアプリケーションを dotMemory でどのように実行するかを指定します。 これは、 実行構成を使用して行うことができます。 すでに実行中のアプリケーションのプロファイルを作成する場合、この手順は必要ありません。
必要に応じて、 他のプロファイリングオプションと プロセスフィルターを構成します。
1. 実行構成の作成
実行構成は、プロファイル対象のアプリケーションを dotMemory でどのように実行するかを指定する方法です。 例: スタンドアロン .NET アプリケーションの実行構成には、アプリケーション実行可能ファイルへのパス、コマンドライン引数、アプリケーション作業ディレクトリへのパスが含まれます。
プロファイルされたアプリケーションの実行構成がすでにある場合は、 プロファイルするものを選択する新しいプロセスの実行 からこの実行構成を選択します。 それ以外の場合は、以下の手順に従って実行構成を作成します。
実行構成の作成方法
プロファイルするものを選択する、 新しいプロセスの実行 で、
実行構成の追加 をクリックします。新規実行構成 ウィザードで、アプリケーションタイプを選択し、アプリケーションオプションを指定します。
保存 をクリックします。 これにより、実行構成が作成および保存されます。 次回このアプリケーションのプロファイルを作成する必要がある場合は、 新しいプロセスの実行 リストから作成した構成を選択します。
2。 他のプロファイリングオプションを構成する
- 割り当てデータを収集する
サンプル化 (デフォルト): 全部 データと比較して、 サンプル化 データは詳細度が低くなります。スナップショットには割り当てられたオブジェクトのおおよそのサイズのみが含まれ、オブジェクト数のデータは含まれません。 サンプル化 モードの長所:
プロファイルされたアプリケーションの速度が低下することはありません。
プロファイラーをすでに実行中のアプリケーションに接続するときに使用できます。
全部: dotMemory は完全なメモリ割り当てデータを収集します。 これには、正しいオブジェクトサイズのデータとオブジェクト数のデータが含まれます。 全部 モードの短所:
プロファイルされたアプリケーションの速度が大幅に低下します。
プロファイラーがすでに実行中のアプリケーションに接続されている場合は使用できません。
重要: プロファイリングコントロールの 割り当てデータ: サンプリング | 全部 スイッチを使用して、プロファイリングセッション中にいつでもデータ収集モードを切り替えることができます。
- プロファイリングを制御する方法
手動 (デフォルト): プロファイリングコントロールを使用してプロファイリングセッションを制御します。 例: スナップショットを撮るには、 スナップショットを取得 をクリックします。
API の使用力: プロファイルされたアプリケーションのコードから直接プロファイリングを制御します。 例: コードの正確なポイントでスナップショットを取得するには、
MemoryProfiler.GetSnapshot()関数を呼び出します。 API によるプロファイリングプロセスの制御での API の使用の詳細を参照してください。
3. (オプション) プロセスフィルターを構成する
プロファイルされたアプリケーションが多数のプロセスを作成する場合は、 プロセスフィルター 設定を使用して、プロファイルするプロセスを指定します。 事前定義されたフィルターを選択するか、新しいフィルターを作成することができます。
プロセスフィルターは、選択した実行構成で指定されたアプリケーションタイプによって動作が異なることに注意してください。
アプリの種類 | 説明 |
|---|---|
dotMemory は、指定されたフィルターに一致するプロセスのみをプロファイルします。 フィルターは、プロファイルされたプロセスのプロセスツリー全体(子プロセスを含む)に適用されます。 例: 多数の子プロセスを作成するマネージドプロセスがあります。 メインプロセスだけでなく、名前に | |
このモードでは、プロファイリングセッションを開始しても、プロファイリングされたプロセスは開始されません。 代わりに、dotMemory はオペレーティングシステムで最初に開始された管理対象プロセスを待機し、そのプロセスにアタッチします。 特定の プロセスフィルター が選択されると、dotMemory はフィルターに一致する最初のプロセスにアタッチします。 例えば、インクルードフィルター: | |
プロセスフィルターは適用されません。 |
プロセスフィルターを選択するには
プロファイル方法を選択してください、 拡張オプション で、 プロセスフィルター リストを開きます。
必要なフィルターを選択します。
dotMemory には、事前定義されたフィルターが 2 つ用意されています:
デフォルト: プロセスフィルターは適用されません。
プロセスツリー全体 :dotMemory は、子プロセスを含むプロセスツリー全体をプロファイルします。 .NET プロセス 実行構成が選択されている場合、dotMemory はシステムで開始された最初の管理対象プロセス(すべての子プロセスを含む)にアタッチしてプロファイルします。

プロセスフィルターを作成するには
プロファイル方法を選択してください、 拡張オプション で、 プロセスフィルター リストを開きます。
フィルターの追加 を選択します。
フィルター設定を指定します。
命名: フィルター名。
プロセスツリー全体のプロファイル :選択すると、dotMemory は子プロセスを含むプロセスツリー全体をプロファイルします。 このオプションを無効にすることは、 .NET プロセス実行構成のフィルターを作成する場合にのみ意味があります。 この場合、dotMemory はフィルターに一致するシステム内の最初のプロセスを待機してアタッチしますが、このプロセスの子プロセスはプロファイルしません。
フィルターマスクを含める、 フィルターマスクを除外する: それに応じてフィルターマスクを含めたり除外したりします。 マスクは、次のルールに従って適用されます。
デフォルトのポリシーは「profileall」です。
インクルードマスクが最初に適用されます。 除外マスクは、包含マスクによってフィルタリングされたプロセスに適用されます。
アスタリスク
*ワイルドカードを使用できます。
例:
MyServiceを除く名前にServiceが含まれるすべての子プロセスをプロファイリングするには、*Service*インクルードマスクとMyServiceエクスクルードマスクを追加します。
保存 をクリックします。