規定 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>