次の方法で共有


<forcePerformanceCounterUniqueSharedMemoryReads> 要素

PerfCounter.dll が、.NET Framework バージョン 1.1 のアプリケーションの CategoryOptions レジストリ設定を使用してするかどうかを指定して、カテゴリ別の共有メモリとグローバル メモリのどちらからパフォーマンス カウンター データを読み込むかを決定します。

configuration
  runtime
    <forcePerformanceCounterUniqueSharedMemoryReads>

構文

<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>  

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
enabled 必須の属性です。

PerfCounter.dll で CategoryOptions レジストリ設定を使用するかどうかを指定して、カテゴリ固有の共有メモリとグローバル メモリのどちらからパフォーマンス カウンター データを読み込むかを決定します。

enabled 属性

[値] 説明
false PerfCounter.dll では、CategoryOptions レジストリ設定を使用しません。これが既定値です。
true PerfCounter.dll では、CategoryOptions レジストリ設定を使用します。

子要素

なし。

親要素

要素 説明
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。
runtime アセンブリのバインディングとガベージ コレクションに関する情報が含まれています。

解説

.NET Framework 4 より前のバージョンの .NET Framework では、読み込まれた PerfCounter.dll のバージョンは、プロセスで読み込まれたランタイムに一致していました。 コンピューターに .NET Framework Version 1.1 と .NET Framework 2.0 の両方がインストールされている場合、.NET Framework 1.1 アプリケーションでは .NET Framework 1.1 バージョンの PerfCounter.dll が読み込まれました。 .NET Framework 4 以降では、インストールされている PerfCounter.dll の最新バージョンが読み込まれます。 これは、コンピューターに .NET Framework 4 がインストールされている場合、.NET Framework 1.1 アプリケーションで .NET Framework 4 バージョンの PerfCounter.dll が読み込まれることを意味します。

.NET Framework 4 以降では、パフォーマンス カウンターを使用する場合、PerfCounter.dll で各プロバイダーの CategoryOptions レジストリ エントリを確認して、カテゴリ固有の共有メモリとグローバル共有メモリのどちらから読み取るかを決定します。 .NET Framework 1.1 の PerfCounter.dll では、カテゴリ固有の共有メモリが認識されないため、そのレジストリ エントリは読み取らず、常にグローバル共有メモリから読み取ります。

旧バージョンとの互換性のために、.NET Framework 4 の PerfCounter.dll は、.NET Framework 1.1 アプリケーションで実行されているときは CategoryOptions レジストリ エントリをチェックしません。 .NET Framework 1.1 の PerfCounter.dll と同様に、単純にグローバル共有メモリを使用します。 ただし、<forcePerformanceCounterUniqueSharedMemoryReads> 要素を有効にすると、レジストリ設定を確認するように .NET Framework 4 の PerfCounter.dll に指示できます。

Note

<forcePerformanceCounterUniqueSharedMemoryReads> 要素を有効にしても、カテゴリ固有の共有メモリが使用されることは保証されません。 enabled を true に設定することで実行されるのは、PerfCounter.dll で CategoryOptions レジストリ設定を参照することだけです。 CategoryOptions の既定の設定では、カテゴリ固有の共有メモリを使用します。ただし、CategoryOptions を変更して、グローバル共有メモリを使用するように示すことができます。

CategoryOptions の設定を含むレジストリ キーは、HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance です。 既定では、CategoryOptions は 3 に設定されています。これは、PerfCounter.dll にカテゴリ固有の共有メモリを使用するように指示します。 CategoryOptions が 0 に設定されている場合、PerfCounter.dll ではグローバル共有メモリを使用します。 インスタンス データが再利用されるのは、作成されるインスタンスの名前が再利用されるインスタンスと同一である場合だけです。 すべてのバージョンでカテゴリに書き込むことができます。 CategoryOptions が 1 に設定されている場合、グローバル共有メモリが使用されますが、カテゴリ名が再利用されるカテゴリと同じ長さの場合は、インスタンス データを再利用できます。

設定 0 および 1 を使用すると、メモリ リークが発生し、パフォーマンス カウンターのメモリがいっぱいになる可能性があります。

次の例では、カテゴリ固有の共有メモリを使用するかどうかを決定するために、PerfCounter.dll で CategoryOptions レジストリ エントリを参照するように指定する方法を示します。

<configuration>  
  <runtime>  
    <forcePerformanceCounterUniqueSharedMemoryReads enabled="true"/>  
  </runtime>  
</configuration>  

関連項目