共用方式為


<forcePerformanceCounterUniqueSharedMemoryReads> 要素

規定 PerfCounter.dll 是否在 .NET Framework 1.1 版本應用程式中使用 CategoryOptions 登錄檔設定,以判斷是從類別特定共享記憶體載入效能計數器資料,還是從全域記憶體載入。

<configuration>
  <runtime>
    <forcePerformanceCounterUniqueSharedMemoryReads>

語法

<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>

屬性和項目

下列章節說明屬性、子元素和父元素。

Attributes

Attribute Description
enabled 必要屬性。

指示 PerfCounter.dll 是否使用 CategoryOptions 登錄檔設定來決定是從類別特定共享記憶體載入效能計數器資料,還是全域記憶體。

啟用屬性

價值觀 Description
false PerfCounter.dll 沒有使用 CategoryOptions 登錄檔設定,這是預設設定。
true PerfCounter.dll 確實使用了 CategoryOptions 登錄檔設定。

子元素

沒有。

父項目

元素 Description
configuration 通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。
runtime 包含關於組裝裝訂與垃圾回收的資訊。

備註

在 .NET Framework 4 之前的 .NET Framework 版本中,載入的 PerfCounter.dll 版本對應於程序中載入的執行時。 若電腦同時安裝 .NET Framework 版本 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一樣。 不過,你可以指示 .NET Framework 4 PerfCounter.dll 透過啟用該 <forcePerformanceCounterUniqueSharedMemoryReads> 元素來檢查登錄檔設定。

備註

啟用該 <forcePerformanceCounterUniqueSharedMemoryReads> 元素並不保證會使用類別特定的共享記憶體。 啟用 的 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 可能導致記憶體洩漏及效能計數器記憶體被填滿。

Example

以下範例說明如何指定 PerfCounter.dll 應參考 CategoryOptions 登錄表條目,以判斷是否應使用類別特定的共享記憶體。

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

另請參閱