<forcePerformanceCounterUniqueSharedMemoryReads> , element

Określa, czy PerfCounter.dll używa ustawienia rejestru CategoryOptions w aplikacji .NET Framework w wersji 1.1, aby określić, czy załadować dane licznika wydajności z pamięci udostępnionej określonej przez kategorię lub pamięci globalnej.

<Konfiguracji>
  <Środowiska wykonawczego>
    <forcePerformanceCounterUniqueSharedMemoryReads>

Składnia

<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>  

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
enabled Atrybut wymagany.

Wskazuje, czy PerfCounter.dll używa ustawienia rejestru CategoryOptions w celu określenia, czy mają być ładowane dane licznika wydajności z pamięci udostępnionej specyficznej dla kategorii, czy pamięci globalnej.

Atrybut włączony

Wartość Opis
false PerfCounter.dll nie używa ustawienia rejestru CategoryOptions. Jest to ustawienie domyślne.
true PerfCounter.dll używa ustawienia rejestru CategoryOptions.

Elementy podrzędne

Brak.

Elementy nadrzędne

Element Opis
configuration Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework.
runtime Zawiera informacje dotyczące powiązania zestawu oraz wyrzucania elementów bezużytecznych.

Uwagi

W wersjach .NET Framework przed .NET Framework 4 wersja PerfCounter.dll, która została załadowana, odpowiada środowisku uruchomieniowemu załadowanemu w procesie. Jeśli na komputerze zainstalowano zarówno .NET Framework 1.1, jak i .NET Framework 2.0, aplikacja .NET Framework 1.1 załadowałaby .NET Framework 1.1 w wersji PerfCounter.dll. Począwszy od .NET Framework 4, ładowana jest najnowsza zainstalowana wersja PerfCounter.dll. Oznacza to, że aplikacja .NET Framework 1.1 załaduje .NET Framework 4 wersji PerfCounter.dll, jeśli na komputerze jest zainstalowana .NET Framework 4.

Począwszy od .NET Framework 4, podczas korzystania z liczników wydajności, PerfCounter.dll sprawdza wpis rejestru CategoryOptions dla każdego dostawcy, aby określić, czy powinien odczytywać z pamięci udostępnionej specyficznej dla kategorii, czy globalnej pamięci udostępnionej. .NET Framework 1.1 PerfCounter.dll nie odczytuje tego wpisu rejestru, ponieważ nie jest świadomy pamięci udostępnionej specyficznej dla kategorii; zawsze odczytuje z globalnej pamięci udostępnionej.

Aby uzyskać zgodność z poprzednimi wersjami, .NET Framework 4 PerfCounter.dll nie sprawdza wpisu rejestru CategoryOptions podczas uruchamiania w aplikacji .NET Framework 1.1. Po prostu używa globalnej pamięci udostępnionej, podobnie jak .NET Framework 1.1 PerfCounter.dll. Można jednak poinstruować .NET Framework 4 PerfCounter.dll, aby sprawdzić ustawienie rejestru, włączając <forcePerformanceCounterUniqueSharedMemoryReads> element.

Uwaga

<forcePerformanceCounterUniqueSharedMemoryReads> Włączenie elementu nie gwarantuje, że będzie używana pamięć udostępniona specyficzna dla danej kategorii. Ustawienie włączone powoduje true tylko PerfCounter.dll odwoływanie się do ustawienia rejestru CategoryOptions. Ustawieniem domyślnym opcji CategoryOptions jest użycie pamięci udostępnionej specyficznej dla kategorii; Można jednak zmienić ustawienie CategoryOptions, aby wskazać, że należy użyć globalnej pamięci udostępnionej.

Klucz rejestru zawierający ustawienie CategoryOptions jest HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance. Domyślnie właściwość CategoryOptions jest ustawiona na 3, co powoduje, że PerfCounter.dll używać pamięci udostępnionej specyficznej dla kategorii. Jeśli parametr CategoryOptions ma wartość 0, PerfCounter.dll używa globalnej pamięci udostępnionej. Dane wystąpienia będą ponownie używane tylko wtedy, gdy nazwa tworzonego wystąpienia jest identyczna z ponownym użyciem wystąpienia. Wszystkie wersje będą mogły zapisywać dane w kategorii. Jeśli parametr CategoryOptions ma wartość 1, używana jest globalna pamięć współdzielona, ale dane wystąpienia mogą być używane ponownie, jeśli nazwa kategorii ma taką samą długość, jak ponowne użycie kategorii.

Ustawienia 0 i 1 mogą prowadzić do przecieków pamięci i zapełniania pamięci licznika wydajności.

Przykład

W poniższym przykładzie pokazano, jak określić, że PerfCounter.dll powinien odwoływać się do wpisu rejestru CategoryOptions w celu określenia, czy ma używać pamięci udostępnionej specyficznej dla kategorii.

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

Zobacz też