dotMemory 2026.1 ヘルプ

サードパーティツールを dotMemory と統合する

JetBrains .NET ツール (dotTrace、dotCover、dotMemory) は、共通のプロファイラーコアに基づいています。このコアは、プロファイリングされたプロセスへのアタッチ、.NET フレームワーク、.NET Core、または .NET ランタイムとの通信、プロファイリングデータの収集などの低レベルのプロファイリング機能を提供します。

プロファイラーコアは、サードパーティツールを JetBrains .NET ツールと統合できるメカニズムを提供します。このような統合の例としては、JetBrains dotTrace とともに実行される Typemock Isolator があります。ユーザーはコードをテストするだけでなく、パフォーマンスの問題を調査することもできます。

透過的な統合の概念

JetBrains .NET ツールは、プロセスをプロファイリングするときに、プロファイラーコアをプロファイリングされたプロセスにロードします。透過的な統合の場合、プロファイリングはサードパーティツールによって開始されます。サードパーティツールは、プロファイラーコアをプロファイリングされたプロセスにロードする責任を負います。

ツールを dotMemory と統合する方法

  1. プロファイリングを開始する前に、ツールは次の場所の少なくとも 1 つで統合構成を提供する必要があります。

    • Linus と macOS の場合:

      • ファイル $HOME/.jetbrains-profiler-transparent-integration-config

    • Windows の場合:

      • レジストリ HKCU\SOFTWARE\JetBrains\Profiler\TransparentIntegration

      • レジストリ HKLM\SOFTWARE\JetBrains\Profiler\TransparentIntegration

      • レジストリ HKLM\SOFTWARE\WOW6432Node\JetBrains\Profiler\TransparentIntegration

      • ファイル %USERPROFILE%\.jetbrains-profiler-transparent-integration-config

    構成ファイルには、キーと値のペアのリストが含まれています。1 行に使用できるキーと値のペアは 1 つだけです。キーと値は = で区切る必要があります。パーサーは、行上の # シンボルに続くテキストを無視します。空行は無視されます。

    キー名

    Windows レジストリのデータ型

    説明

    {name}

    REG_SZ

    (必須) サードパーティプロファイラー COM オブジェクトのクラス ID。

    {name}_Path32

    REG_SZ

    (Windows ARM64/x64/x86 では必須) x86 サードパーティプロファイラー共有ライブラリへの絶対パス。

    {name}_Path64

    REG_SZ

    (Linux x64、macOS ARM64/x64、Windows ARM64/x64 で必須) x64 サードパーティプロファイラー共有ライブラリへの絶対パス。

    {name}_PathArm32

    (Linux ARM では必須) ARM サードパーティプロファイラー共有ライブラリへの絶対パス。

    {name}_PathArm64

    REG_SZ

    (Linux ARM64、macOS ARM64、Windows ARM64 で必須) ARM64 サードパーティプロファイラー共有ライブラリへの絶対パス。

    {name}_RegistryFreeActivation

    REG_DWORD

    (オプション、Windows のみ) デフォルトでは 0 ステップ 2 をスキップする場合、つまり .NET フレームワーク 2.0 - 4.5.2 プロセスのプロファイリングを行わない場合は、0 以外の任意の数値を指定します。

    ツールがプロファイリングするプロセスを開始する場合は、以下の各 {name} に対応するレジストリ値を作成します。

    • MemoryProfiler

    ツールがプロファイリングする実行中のプロセスにアタッチする場合は、以下の各 {name} に対応するレジストリ値を作成します。

    • MemoryProfiler_Attach

  2. Win32 API または x86 および x64 の regsvr32 を使用して、ツールを COM オブジェクトとして登録します (ARM64 CPU は .NET フレームワーク 2.0 - 4.5.2 をサポートしません)。

  3. JetBrains プロファイラーコアをプロファイリングされたプロセスにロードするには、次のデータを使用します。

    変数

    Windows レジストリのデータ型

    説明

    JETBRAINS_PROFILER_CORE_GUID

    REG_SZ

    (必須) プロファイラーコア GUID。

    JETBRAINS_PROFILER_CORE_PATH32

    REG_SZ

    (Windows ARM64/x64/x86 では必須) x86 プロファイラーコア共有ライブラリへの絶対パス。

    JETBRAINS_PROFILER_CORE_PATH64

    REG_SZ

    (Linux x64、macOS ARM64/x64、Windows ARM64/x64 で必須) x64 プロファイラーコア共有ライブラリへの絶対パス。

    JETBRAINS_PROFILER_CORE_PATH_ARM32

    REG_SZ

    (Linux ARM では必須) ARM プロファイラーコア共有ライブラリへの絶対パス。

    JETBRAINS_PROFILER_CORE_PATH_ARM64

    REG_SZ

    (Linux ARM64、macOS ARM64、Windows ARM64 で必須) ARM64 プロファイラーコア共有ライブラリへの絶対パス。

    これらの変数の値は、次のソースから取得する必要があります(必要な値が見つかるまで、指定された順序でソースを正確に検索してください)。

    1. Linus と macOS の場合:

      1. ファイル: /tmp/Upid_<pid>_<pst>/<var>

      2. 環境変数

    2. Windows の場合:

      1. レジストリ: HKCU\SOFTWARE\JetBrains\Profiler\Upid_<pid>_<pst>

      2. レジストリ: HKLM\SOFTWARE\JetBrains\Profiler\Upid_<pid>_<pst>

      3. 環境変数

      4. レジストリ: HKLM\SOFTWARE\JetBrains\Profiler\Global

    説明:

    • <var> – 上の表の変数。

    • <pid> – 符号なし 10 進プロセス ID。

    • <pst> – 16 進数のプロセス開始時刻:

      • Linux の場合: システム起動からのクロック刻み。

      • Windows および macOS の場合: 1601 年 1 月 1 日 (UTC) から 100 ナノ秒間隔。

  4. ツールが ICorProfilerInfo* インターフェースの変換を実装し、最新の状態に維持していることを確認してください。ツールでの ICorProfilerInfo::QueryInterface() の実装は、サポートする CLR/CoreCLR バージョンと同じ使用可能なインターフェースのセットを返す必要があることに注意してください。例: CoreCLR が ICorProfilerInfoICorProfilerInfo4 のみをサポートする場合、JetBrains プロファイラーコアはこれらのインターフェースのみを使用できる必要があります。

2024 年 2 月 11 日