<forcePerformanceCounterUniqueSharedMemoryReads> 元素
指定 PerfCounter.dll 是否在 .NET Framework 1.1 版的應用程式中使用 CategoryOptions 登錄設定,以決定要從類別特定共用記憶體或從全域記憶體載入效能計數器資料。
<configuration>
<執行階段>
<forcePerformanceCounterUniqueSharedMemoryReads>
Syntax
<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>
屬性和項目
下列章節說明屬性、子元素和父元素。
屬性
屬性 | 描述 |
---|---|
enabled |
必要屬性。 指定 PerfCounter.dll 是否使用 CategoryOptions 登錄設定,以決定要從類別特定共用記憶體或從全域記憶體載入效能計數器資料。 |
啟用屬性
值 | 描述 |
---|---|
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 1.1 應用程式中執行時,.NET Framework 4 PerfCounter.dll不會檢查 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 可能會導致記憶體流失,並占滿效能計數器記憶體。
範例
下列範例示範如何指定 PerfCounter.dll 應參考 CategoryOptions 登錄項目,以判斷其是否應該使用類別特定共用記憶體。
<configuration>
<runtime>
<forcePerformanceCounterUniqueSharedMemoryReads enabled="true"/>
</runtime>
</configuration>