.NET Framework의 성능 카운터Performance Counters in the .NET Framework

이 항목에서 확인할 수 있는 성능 카운터의 목록을 제공 합니다 Windows 성능 모니터합니다.This topic provides a list of performance counters you can find in the Windows Performance Monitor.

예외 성능 카운터Exception performance counters

성능 콘솔 .NET CLR 예외 범주에는 응용 프로그램에서 발생한 예외에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR Exceptions category includes counters that provide information about the exceptions thrown by an application. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
# of Exceps Thrown# of Exceps Thrown 응용 프로그램이 시작된 이후 발생한 예외의 총수를 표시합니다.Displays the total number of exceptions thrown since the application started. .NET 예외 및 .NET 예외로 변환된 관리되지 않는 예외를 모두 포함합니다.This includes both .NET exceptions and unmanaged exceptions that are converted into .NET exceptions. 예를 들어 비관리 코드에서 반환된 HRESULT는 관리 코드에서 예외로 변환됩니다.For example, an HRESULT returned from unmanaged code is converted to an exception in managed code.

이 카운터는 처리된 예외와 처리되지 않은 예외를 모두 포함합니다.This counter includes both handled and unhandled exceptions. 다시 발생한 예외는 다시 계산됩니다.Exceptions that are rethrown are counted again.
# of Exceps Thrown / Sec# of Exceps Thrown / Sec 초당 발생한 예외 수를 표시합니다.Displays the number of exceptions thrown per second. .NET 예외 및 .NET 예외로 변환된 관리되지 않는 예외를 모두 포함합니다.This includes both .NET exceptions and unmanaged exceptions that are converted into .NET exceptions. 예를 들어 비관리 코드에서 반환된 HRESULT는 관리 코드에서 예외로 변환됩니다.For example, an HRESULT returned from unmanaged code is converted to an exception in managed code.

이 카운터는 처리된 예외와 처리되지 않은 예외를 모두 포함합니다.This counter includes both handled and unhandled exceptions. 시간별 평균이 아니라 마지막 두 샘플에서 관찰된 값의 차이를 샘플 간격 기간으로 나눈 값을 표시합니다.It is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval. 이 카운터는 100개를 초과(>100)하는 수의 예외가 throw된 경우 잠재적 성능 문제를 표시합니다.This counter is an indicator of potential performance problems if a large (>100s) number of exceptions are thrown.
# of Filters / Sec# of Filters / Sec 초당 실행된 .NET 예외 필터 수를 표시합니다.Displays the number of .NET exception filters executed per second. 예외가 처리되었는지 여부에 관계없이 예외 필터가 평가됩니다.An exception filter evaluates regardless of whether an exception is handled.

이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
# of Finallys / Sec# of Finallys / Sec 초당 실행된 finally 블록 수를 표시합니다.Displays the number of finally blocks executed per second. finally 블록은 try 블록이 종료된 방식에 관계없이 실행됩니다.A finally block is guaranteed to be executed regardless of how the try block was exited. 예외에 대해 실행된 finally 블록만 계산됩니다. 정상적인 코드 경로의 finally 블록은 이 카운터에서 계산되지 않습니다.Only the finally blocks executed for an exception are counted; finally blocks on normal code paths are not counted by this counter.

이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Throw to Catch Depth / SecThrow to Catch Depth / Sec 예외가 발생한 프레임에서 예외를 처리한 프레임으로 트래버스된 초당 스택 프레임 수를 표시합니다.Displays the number of stack frames traversed, from the frame that threw the exception to the frame that handled the exception, per second. 예외 처리기를 실행하면 이 카운터가 0으로 다시 설정되므로 중첩된 예외는 처리기 간의 스택 깊이를 나타냅니다.This counter resets to zero when an exception handler is entered, so nested exceptions show the handler-to-handler stack depth.

이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.

interop 성능 카운터Interop performance counters

성능 콘솔 .NET CLR Interop 범주에는 응용 프로그램과 COM 구성 요소, COM+ 서비스 및 외부 형식 라이브러리의 상호 작용에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR Interop category includes counters that provide information about an application's interaction with COM components, COM+ services, and external type libraries. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
# of CCWs# of CCWs 현재 CCW(COM 호출 가능 래퍼) 수를 표시합니다.Displays the current number of COM callable wrappers (CCWs). CCW는 관리되지 않는 COM 클라이언트에서 참조되는 관리되는 개체에 대한 프록시입니다.A CCW is a proxy for a managed object being referenced from an unmanaged COM client. 이 카운터는 관리되지 않는 COM 코드에서 참조되는 관리되는 개체 수를 나타냅니다.This counter indicates the number of managed objects referenced by unmanaged COM code.
# of marshaling# of marshaling 응용 프로그램이 시작된 이후 인수 및 반환 값을 관리 코드에서 비관리 코드로 마샬링하거나 그 반대로 마샬링한 총 횟수를 표시합니다.Displays the total number of times arguments and return values have been marshaled from managed to unmanaged code, and vice versa, since the application started. 이 카운터는 스텁이 인라인인 경우에는 증가하지 않습니다.This counter is not incremented if the stubs are inlined. 스텁은 인수 및 반환 값을 마샬링합니다.(Stubs are responsible for marshaling arguments and return values). 일반적으로 스텁은 마샬링 오버헤드가 적을 때 인라인됩니다.Stubs are usually inlined if the marshaling overhead is small.
# of Stubs# of Stubs 공용 언어 런타임에서 만든 현재 스텁 수를 표시합니다.Displays the current number of stubs created by the common language runtime. 스텁은 COM interop 호출이나 플랫폼 호출 중에 인수 및 반환 값을 관리 코드에서 비관리 코드로 마샬링하거나 그 반대로 마샬링합니다.Stubs are responsible for marshaling arguments and return values from managed to unmanaged code, and vice versa, during a COM interop call or a platform invoke call.
# of TLB exports / sec# of TLB exports / sec 나중에 사용하기 위해 예약되어 있습니다.Reserved for future use.
# of TLB imports / sec# of TLB imports / sec 나중에 사용하기 위해 예약되어 있습니다.Reserved for future use.

JIT 성능 카운터JIT performance counters

성능 콘솔 .NET CLR JIT 범주에는 JIT 컴파일된 코드에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR JIT category includes counters that provide information about code that has been JIT-compiled. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
# of IL Bytes JITted# of IL Bytes JITted 응용 프로그램이 시작된 이후 JIT(Just-In-Time) 컴파일러에서 컴파일된 MSIL(Microsoft Intermediate Language) 바이트의 총수를 표시합니다.Displays the total number of Microsoft intermediate language (MSIL) bytes compiled by the just-in-time (JIT) compiler since the application started. 이 카운터는 Total # of IL Bytes Jitted 카운터에 해당합니다.This counter is equivalent to the Total # of IL Bytes Jitted counter.
# of Methods JITted# of Methods JITted 응용 프로그램이 시작된 이후 JIT 컴파일된 메서드의 총수를 표시합니다.Displays the total number of methods JIT-compiled since the application started. 이 카운터는 사전 JIT 컴파일된 메서드를 포함하지 않습니다.This counter does not include pre-JIT-compiled methods.
% Time in Jit% Time in Jit 마지막 JIT 컴파일 단계 이후 JIT 컴파일에 소요된 경과 시간의 백분율을 표시합니다.Displays the percentage of elapsed time spent in JIT compilation since the last JIT compilation phase. 이 카운터는 JIT 컴파일 단계가 끝날 때마다 업데이트됩니다.This counter is updated at the end of every JIT compilation phase. JIT 컴파일 단계는 메서드 및 해당 종속성이 컴파일될 때 발생합니다.A JIT compilation phase occurs when a method and its dependencies are compiled.
IL Bytes Jitted / secIL Bytes Jitted / sec 초당 JIT 컴파일되는 MSIL 바이트 수를 표시합니다.Displays the number of MSIL bytes that are JIT-compiled per second. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Standard Jit FailuresStandard Jit Failures 응용 프로그램이 시작된 이후 JIT 컴파일러에서 컴파일하지 못한 메서드의 최대 개수를 표시합니다.Displays the peak number of methods the JIT compiler has failed to compile since the application started. 이 오류는 MSIL을 확인할 수 없거나 JIT 컴파일러에 내부 오류가 있는 경우에 발생할 수 있습니다.This failure can occur if the MSIL cannot be verified or if there is an internal error in the JIT compiler.
Total # of IL Bytes JittedTotal # of IL Bytes Jitted 응용 프로그램이 시작된 이후 JIT 컴파일된 MSIL 바이트의 총수를 표시합니다.Displays the total MSIL bytes JIT-compiled since the application started. 이 카운터는 # of IL Bytes Jitted 카운터에 해당합니다.This counter is equivalent to the # of IL Bytes Jitted counter.

로드 성능 카운터Loading performance counters

성능 콘솔 .NET CLR 로드 범주에는 로드된 어셈블리, 클래스 및 응용 프로그램 도메인에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR Loading category includes counters that provide information about assemblies, classes, and application domains that are loaded. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
% Time Loading% Time Loading 나중에 사용하기 위해 예약되어 있습니다.Reserved for future use.
Assembly Search LengthAssembly Search Length 나중에 사용하기 위해 예약되어 있습니다.Reserved for future use.
Bytes in Loader HeapBytes in Loader Heap 모든 응용 프로그램 도메인에 클래스 로더가 커밋된 메모리의 현재 크기(바이트)를 표시합니다.Displays the current size, in bytes, of the memory committed by the class loader across all application domains. 커밋된 메모리는 디스크 페이징 파일에 예약된 실제 공간입니다.Committed memory is the physical space reserved in the disk paging file.
Current appdomainsCurrent appdomains 이 응용 프로그램에 로드된 응용 프로그램 도메인의 현재 개수를 표시합니다.Displays the current number of application domains loaded in this application.
Current AssembliesCurrent Assemblies 현재 실행 중인 응용 프로그램에서 모든 응용 프로그램 도메인에 로드된 어셈블리의 현재 개수를 표시합니다.Displays the current number of assemblies loaded across all application domains in the currently running application. 어셈블리가 여러 응용 프로그램 도메인에서 도메인 중립적으로 로드되는 경우 이 카운터는 한 번만 증가됩니다.If the assembly is loaded as domain-neutral from multiple application domains, this counter is incremented only once.
Current Classes LoadedCurrent Classes Loaded 모든 어셈블리에 로드된 클래스의 현재 개수를 표시합니다.Displays the current number of classes loaded in all assemblies.
Rate of appdomainsRate of appdomains 초당 로드된 응용 프로그램 도메인 수를 표시합니다.Displays the number of application domains loaded per second. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Rate of appdomains unloadedRate of appdomains unloaded 초당 언로드된 응용 프로그램 도메인 수를 표시합니다.Displays the number of application domains unloaded per second. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Rate of AssembliesRate of Assemblies 모든 응용 프로그램 도메인에 초당 로드된 어셈블리 수를 표시합니다.Displays the number of assemblies loaded per second across all application domains. 어셈블리가 여러 응용 프로그램 도메인에서 도메인 중립적으로 로드되는 경우 이 카운터는 한 번만 증가됩니다.If the assembly is loaded as domain-neutral from multiple application domains, this counter is incremented only once.

이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Rate of Classes LoadedRate of Classes Loaded 모든 어셈블리에 초당 로드된 클래스 수를 표시합니다.Displays the number of classes loaded per second in all assemblies. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Rate of Load FailuresRate of Load Failures 초당 로드하지 못한 클래스 수를 표시합니다.Displays the number of classes that failed to load per second. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.

로드 실패는 부적절한 보안이나 잘못된 형식과 같은 다양한 이유로 발생할 수 있습니다.Load failures can occur for many reasons, such as inadequate security or invalid format. 자세한 내용은 프로파일링 서비스 도움말을 참조하세요.For details, see the profiling services Help.
Total # of Load FailuresTotal # of Load Failures 응용 프로그램이 시작된 이후 로드하지 못한 클래스의 최대 개수를 표시합니다.Displays the peak number of classes that have failed to load since the application started.

로드 실패는 부적절한 보안이나 잘못된 형식과 같은 다양한 이유로 발생할 수 있습니다.Load failures can occur for many reasons, such as inadequate security or invalid format. 자세한 내용은 프로파일링 서비스 도움말을 참조하세요.For details, see the profiling services Help.
Total AppdomainsTotal Appdomains 응용 프로그램이 시작된 이후 로드된 응용 프로그램 도메인의 최대 개수를 표시합니다.Displays the peak number of application domains loaded since the application started.
Total appdomains unloadedTotal appdomains unloaded 응용 프로그램이 시작된 이후 언로드된 응용 프로그램 도메인의 총수를 표시합니다.Displays the total number of application domains unloaded since the application started. 응용 프로그램 도메인이 여러 번 로드 및 언로드되는 경우 이 카운터는 응용 프로그램 도메인이 언로드될 때마다 증가합니다.If an application domain is loaded and unloaded multiple times, this counter increments each time the application domain is unloaded.
Total AssembliesTotal Assemblies 응용 프로그램이 시작된 이후 로드된 어셈블리의 총수를 표시합니다.Displays the total number of assemblies loaded since the application started. 어셈블리가 여러 응용 프로그램 도메인에서 도메인 중립적으로 로드되는 경우 이 카운터는 한 번만 증가됩니다.If the assembly is loaded as domain-neutral from multiple application domains, this counter is incremented only once.
Total Classes LoadedTotal Classes Loaded 응용 프로그램이 시작된 이후 모든 어셈블리에 로드된 클래스의 누적 개수를 표시합니다.Displays the cumulative number of classes loaded in all assemblies since the application started.

잠금 및 스레드 성능 카운터Lock and thread performance counters

성능 콘솔 .NET CLR LocksAndThreads 범주에는 응용 프로그램에서 사용하는 관리되는 잠금 및 스레드에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR LocksAndThreads category includes counters that provide information about managed locks and threads that an application uses. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
# of current logical Threads# of current logical Threads 응용 프로그램에서 현재 관리 되는 스레드 개체 수를 표시합니다.Displays the number of current managed thread objects in the application. 이 카운터는 실행 중인 스레드와 중지된 스레드 둘 다의 개수를 유지 관리합니다.This counter maintains the count of both running and stopped threads. 이 카운터는 시간별 평균이 아니라 마지막으로 관찰된 값만 표시합니다.This counter is not an average over time; it displays only the last observed value.
# of current physical Threads# of current physical Threads 공용 언어 런타임에서 관리되는 스레드 개체에 대한 기본 스레드로 사용하기 위해 만들고 소유한 네이티브 운영 체제 스레드 수를 표시합니다.Displays the number of native operating system threads created and owned by the common language runtime to act as underlying threads for managed thread objects. 런타임에서 내부 작업에 사용하는 스레드는 이 카운터 값에 포함되지 않고 운영 체제 프로세스의 스레드 하위 집합입니다.This counter's value does not include the threads used by the runtime in its internal operations; it is a subset of the threads in the operating system process.
# of current recognized threads# of current recognized threads 현재 런타임에서 인식된 스레드 수를 표시합니다.Displays the number of threads that are currently recognized by the runtime. 이 스레드는 해당하는 관리되는 스레드 개체와 연결됩니다.These threads are associated with a corresponding managed thread object. 런타임에서 이 스레드를 만들지는 않지만 런타임 내에서 한 번 이상 실행되었습니다.The runtime does not create these threads, but they have run inside the runtime at least once.

고유한 스레드만 추적됩니다. 런타임에 다시 실행되거나 스레드가 종료된 후 다시 만들어진 동일한 스레드 ID를 가진 스레드는 두 번 계산되지 않습니다.Only unique threads are tracked; threads with the same thread ID that reenter the runtime or are recreated after the thread exits are not counted twice.
# of total recognized Threads# of total recognized Threads 응용 프로그램이 시작된 이후 런타임에서 인식된 스레드의 총수를 표시합니다.Displays the total number of threads that have been recognized by the runtime since the application started. 이 스레드는 해당하는 관리되는 스레드 개체와 연결됩니다.These threads are associated with a corresponding managed thread object. 런타임에서 이 스레드를 만들지는 않지만 런타임 내에서 한 번 이상 실행되었습니다.The runtime does not create these threads, but they have run inside the runtime at least once.

고유한 스레드만 추적됩니다. 런타임에 다시 실행되거나 스레드가 종료된 후 다시 만들어진 동일한 스레드 ID를 가진 스레드는 두 번 계산되지 않습니다.Only unique threads are tracked; threads with the same thread ID that reenter the runtime or are recreated after the thread exits are not counted twice.
Contention Rate / SecContention Rate / Sec 런타임에서 관리되는 잠금을 얻는 데 실패한 스레드의 비율을 표시합니다.Displays the rate at which threads in the runtime attempt to acquire a managed lock unsuccessfully.
Current Queue LengthCurrent Queue Length 응용 프로그램에서 현재 관리되는 잠금을 얻기 위해 대기 중인 스레드의 총수를 표시합니다.Displays the total number of threads that are currently waiting to acquire a managed lock in the application. 이 카운터는 시간별 평균이 아니라 마지막으로 관찰된 값을 표시합니다.This counter is not an average over time; it displays the last observed value.
Queue Length / secQueue Length / sec 응용 프로그램에서 잠금을 얻기 위해 대기 중인 초당 스레드 수를 표시합니다.Displays the number of threads per second that are waiting to acquire a lock in the application. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Queue Length PeakQueue Length Peak 응용 프로그램이 시작된 이후 관리되는 잠금을 얻기 위해 대기한 스레드의 총수를 표시합니다.Displays the total number of threads that waited to acquire a managed lock since the application started.
rate of recognized threads / secrate of recognized threads / sec 런타임에서 인식된 초당 스레드 수를 표시합니다.Displays the number of threads per second that have been recognized by the runtime. 이 스레드는 해당하는 관리되는 스레드 개체와 연결됩니다.These threads are associated with a corresponding managed thread object. 런타임에서 이 스레드를 만들지는 않지만 런타임 내에서 한 번 이상 실행되었습니다.The runtime does not create these threads, but they have run inside the runtime at least once.

고유한 스레드만 추적됩니다. 런타임에 다시 실행되거나 스레드가 종료된 후 다시 만들어진 동일한 스레드 ID를 가진 스레드는 두 번 계산되지 않습니다.Only unique threads are tracked; threads with the same thread ID that reenter the runtime or are recreated after the thread exits are not counted twice.

이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Total # of ContentionsTotal # of Contentions 런타임의 스레드가 관리되는 잠금을 얻는 데 실패한 총 횟수를 표시합니다.Displays the total number of times that threads in the runtime have attempted to acquire a managed lock unsuccessfully.

메모리 성능 카운터Memory performance counters

성능 콘솔 .NET CLR 메모리 범주에는 가비지 수집기에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR Memory category includes counters that provide information about the garbage collector. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
# Bytes in all Heaps# Bytes in all Heaps Gen 1 Heap Size, Gen 2 Heap SizeLarge Object Heap Size 카운터의 합계를 표시합니다.Displays the sum of the Gen 1 Heap Size, Gen 2 Heap Size, and Large Object Heap Size counters. 이 카운터는 가비지 컬렉션 힙에 할당된 현재 메모리 크기(바이트)를 나타냅니다.This counter indicates the current memory allocated in bytes on the garbage collection heaps.
# GC Handles# GC Handles 사용 중인 가비지 컬렉션 핸들의 현재 개수를 표시합니다.Displays the current number of garbage collection handles in use. 가비지 컬렉션 핸들은 공용 언어 런타임 및 관리되는 환경의 외부 리소스에 대한 핸들입니다.Garbage collection handles are handles to resources external to the common language runtime and the managed environment.
# Gen 0 Collections# Gen 0 Collections 응용 프로그램이 시작된 이후 0세대 개체(즉, 가장 최근에 할당된 개체)가 가비지 수집된 횟수를 표시합니다.Displays the number of times the generation 0 objects (that is, the youngest, most recently allocated objects) are garbage collected since the application started.

0세대 가비지 수집은 0세대에서 사용 가능한 메모리가 할당 요청을 충족하기에 충분하지 않을 때 발생합니다.Generation 0 garbage collection occurs when the available memory in generation 0 is not sufficient to satisfy an allocation request. 이 카운터는 0세대 가비지 수집이 끝날 때 증가됩니다.This counter is incremented at the end of a generation 0 garbage collection. 상위 세대 가비지 수집에는 하위 세대 수집이 모두 포함됩니다.Higher generation garbage collections include all lower generation collections. 이 카운터는 상위 세대(1세대 또는 2세대) 가비지 수집이 발생할 때 명시적으로 증가됩니다.This counter is explicitly incremented when a higher generation (generation 1 or 2) garbage collection occurs.

이 카운터는 마지막으로 관찰된 값을 표시합니다.This counter displays the last observed value. _Global_ 카운터 값은 정확하지 않으며 무시해야 합니다.The _Global_ counter value is not accurate and should be ignored.
# Gen 1 Collections# Gen 1 Collections 응용 프로그램이 시작된 이후 1세대 개체가 가비지 수집된 횟수를 표시합니다.Displays the number of times the generation 1 objects are garbage collected since the application started.

이 카운터는 1세대 가비지 수집이 끝날 때 증가됩니다.The counter is incremented at the end of a generation 1 garbage collection. 상위 세대 가비지 수집에는 하위 세대 수집이 모두 포함됩니다.Higher generation garbage collections include all lower generation collections. 이 카운터는 상위 세대(2세대) 가비지 수집이 발생할 때 명시적으로 증가됩니다.This counter is explicitly incremented when a higher generation (generation 2) garbage collection occurs.

이 카운터는 마지막으로 관찰된 값을 표시합니다.This counter displays the last observed value. _Global_ 카운터 값은 정확하지 않으며 무시해야 합니다.The _Global_ counter value is not accurate and should be ignored.
# Gen 2 Collections# Gen 2 Collections 응용 프로그램이 시작된 이후 2세대 개체가 가비지 수집된 횟수를 표시합니다.Displays the number of times the generation 2 objects are garbage collected since the application started. 이 카운터는 2세대 가비지 수집(전체 가비지 수집이라고도 함)이 끝날 때 증가됩니다.The counter is incremented at the end of a generation 2 garbage collection (also called a full garbage collection).

이 카운터는 마지막으로 관찰된 값을 표시합니다.This counter displays the last observed value. _Global_ 카운터 값은 정확하지 않으며 무시해야 합니다.The _Global_ counter value is not accurate and should be ignored.
# Induced GC# Induced GC 명시적 GC.Collect 호출로 인해 가비지 컬렉션이 수행된 최대 횟수를 표시합니다.Displays the peak number of times garbage collection was performed because of an explicit call to GC.Collect. 가비지 수집기가 컬렉션 빈도를 조정하도록 하는 것이 좋습니다.It is good practice to let the garbage collector tune the frequency of its collections.
# of Pinned Objects# of Pinned Objects 마지막 가비지 컬렉션에서 발생한 고정된 개체 수를 표시합니다.Displays the number of pinned objects encountered in the last garbage collection. 고정된 개체는 가비지 수집기가 메모리에서 이동할 수 없는 개체입니다.A pinned object is an object that the garbage collector cannot move in memory. 이 카운터는 가비지 수집된 힙에서만 고정된 개체를 추적합니다.This counter tracks pinned objects only in the heaps that are garbage collected. 예를 들어 0세대 가비지 컬렉션에서는 0세대 힙의 고정된 개체만 열거됩니다.For example, a generation 0 garbage collection causes enumeration of pinned objects only in the generation 0 heap.
# of Sink Blocks in use# of Sink Blocks in use 사용 중인 동기화 블록의 수를 나타냅니다.Displays the current number of synchronization blocks in use. 동기화 블록은 동기화 정보를 저장하는 데 할당된 개체별 데이터 구조입니다.Synchronization blocks are per-object data structures allocated for storing synchronization information. 동기화 블록은 관리되는 개체에 대한 약한 참조를 가지며 가비지 수집기에 의해 스캔됩니다.They hold weak references to managed objects and must be scanned by the garbage collector. 동기화 블록에 동기화 정보뿐 아니라 COM interop 메타데이터를 저장할 수도 있습니다.Synchronization blocks are not limited to storing synchronization information; they can also store COM interop metadata. 이 카운터는 동기화 기본 형식을 많이 사용할 때 발생하는 성능 문제를 나타냅니다.This counter indicates performance problems with heavy use of synchronization primitives.
# Total committed Bytes# Total committed Bytes 가비지 컬렉션기에서 현재 커밋된 가상 메모리 크기(바이트)를 표시합니다.Displays the amount of virtual memory, in bytes, currently committed by the garbage collector. 커밋된 메모리는 디스크 페이징 파일에 공간이 예약된 실제 메모리입니다.Committed memory is the physical memory for which space has been reserved in the disk paging file.
# Total reserved Bytes# Total reserved Bytes 가비지 수집기에서 현재 예약한 가상 메모리의 양을 바이트 단위로 표시합니다.Displays the amount of virtual memory, in bytes, currently reserved by the garbage collector. 예약한 메모리는 디스크 또는 주 메모리 페이지가 아직 사용되지 않았을 때 응용 프로그램에 예약된 가상 메모리 공간입니다.Reserved memory is the virtual memory space reserved for the application when no disk or main memory pages have been used.
% Time in GC% Time in GC 마지막 가비지 컬렉션 주기 이후 가비지 컬렉션을 수행하는 데 소요된 경과 시간의 백분율을 표시합니다.Displays the percentage of elapsed time that was spent performing a garbage collection since the last garbage collection cycle. 이 카운터는 일반적으로 가비지 수집기에서 응용 프로그램을 대신하여 메모리를 수집 및 압축하기 위해 수행한 작업을 나타냅니다.This counter usually indicates the work done by the garbage collector to collect and compact memory on behalf of the application. 이 카운터는 각 가비지 수집이 끝날 때만 업데이트됩니다.This counter is updated only at the end of every garbage collection. 이 카운터는 평균이 아니며 마지막으로 관찰된 값이 카운터 값에 반영됩니다.This counter is not an average; its value reflects the last observed value.
Allocated Bytes/secondAllocated Bytes/second 가비지 컬렉션 힙에 할당된 초당 바이트 수를 표시합니다.Displays the number of bytes per second allocated on the garbage collection heap. 이 카운터는 각 할당이 아니라 가비지 수집이 끝날 때마다 업데이트됩니다.This counter is updated at the end of every garbage collection, not at each allocation. 이 카운터는 평균 초과 시간이 아니며, 샘플 간격으로 나뉜 마지막 두 개의 샘플에서 관찰된 값의 차이를 표시합니다.This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Finalization SurvivorsFinalization Survivors 종료 대기 중이므로 컬렉션 후에 유지되는 가비지 수집된 개체 수를 표시합니다.Displays the number of garbage-collected objects that survive a collection because they are waiting to be finalized. 이 개체가 다른 개체에 대한 참조를 포함하는 경우 해당 개체도 유지되지만 이 카운터에서 계산되지는 않습니다.If these objects hold references to other objects, those objects also survive but are not counted by this counter. Promoted Finalization-Memory from Gen 0 카운터는 종료로 인해 남아 있는 모든 메모리를 표시합니다.The Promoted Finalization-Memory from Gen 0 counter represents all the memory that survived due to finalization.

이 카운터는 누적되지 않으며, 가비지 컬렉션이 끝날 때마다 해당 컬렉션 중에 유지된 항목 수로 업데이트됩니다.This counter is not cumulative; it is updated at the end of every garbage collection with the count of the survivors during that particular collection only. 이 카운터는 종료로 인해 응용 프로그램에서 발생할 수 있는 추가 오버헤드를 나타냅니다.This counter indicates the extra overhead that the application might incur because of finalization.
Gen 0 heap sizeGen 0 heap size 0세대에 할당할 수 있는 최대 바이트 수를 표시합니다. 0세대에 할당된 현재 바이트 수를 나타내지 않습니다.Displays the maximum bytes that can be allocated in generation 0; it does not indicate the current number of bytes allocated in generation 0.

0세대 가비지 수집은 마지막 수집 이후의 할당이 이 크기를 초과할 때 발생합니다.A generation 0 garbage collection occurs when the allocations since the last collection exceed this size. 0세대 크기는 가비지 수집기에서 조정되며 응용 프로그램 실행 중에 변경될 수 있습니다.The generation 0 size is tuned by the garbage collector and can change during the execution of the application. 0세대 수집이 끝나면 0세대 힙 크기가 0바이트가 됩니다.At the end of a generation 0 collection the size of the generation 0 heap is 0 bytes. 이 카운터는 다음 0세대 가비지 수집을 호출하는 할당 크기(바이트)를 표시합니다.This counter displays the size, in bytes, of allocations that invokes the next generation 0 garbage collection.

이 카운터는 각 할당이 아니라 가비지 컬렉션이 끝날 때 업데이트됩니다.This counter is updated at the end of a garbage collection, not at each allocation.
Gen 0 Promoted Bytes/SecGen 0 Promoted Bytes/Sec 0세대에서 1세대로 수준이 올려진 초당 바이트 수를 표시합니다.Displays the bytes per second that are promoted from generation 0 to generation 1. 메모리는 가비지 수집 후에 유지될 때 수준이 올려집니다.Memory is promoted when it survives a garbage collection. 이 카운터는 초당 만들어지는 비교적 수명이 긴 개체 수를 나타냅니다.This counter is an indicator of relatively long-lived objects being created per second.

이 카운터는 마지막 두 샘플에서 관찰된 값의 차이를 샘플 간격 기간으로 나눈 값을 표시합니다.This counter displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Gen 1 heap sizeGen 1 heap size 1세대의 현재 바이트 수를 표시합니다. 이 카운터는 1세대의 최대 크기를 표시하지 않습니다.Displays the current number of bytes in generation 1; this counter does not display the maximum size of generation 1. 개체는 이 세대에 직접 할당되지 않고 이전 0세대 가비지 수집에서 수준이 올려집니다.Objects are not directly allocated in this generation; they are promoted from previous generation 0 garbage collections. 이 카운터는 각 할당이 아니라 가비지 컬렉션이 끝날 때 업데이트됩니다.This counter is updated at the end of a garbage collection, not at each allocation.
Gen 1 Promoted Bytes/SecGen 1 Promoted Bytes/Sec 1세대에서 2세대로 수준이 올려진 초당 바이트 수를 표시합니다.Displays the bytes per second that are promoted from generation 1 to generation 2. 단지 종료 대기 중이므로 수준이 올려진 개체는 이 카운터에 포함되지 않습니다.Objects that are promoted only because they are waiting to be finalized are not included in this counter.

메모리는 가비지 수집 후에 유지될 때 수준이 올려집니다.Memory is promoted when it survives a garbage collection. 최상위 세대이므로 2세대에서 수준이 올려지는 항목은 없습니다.Nothing is promoted from generation 2 because it is the oldest generation. 이 카운터는 초당 만들어지는 매우 수명이 긴 개체 수를 나타냅니다.This counter is an indicator of very long-lived objects being created per second.

이 카운터는 마지막 두 샘플에서 관찰된 값의 차이를 샘플 간격 기간으로 나눈 값을 표시합니다.This counter displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Gen 2 heap sizeGen 2 heap size 2세대의 현재 바이트 수를 표시합니다.Displays the current number of bytes in generation 2. 개체는 이 세대에 직접 할당되지 않고 이전 1세대 가비지 수집 중 1세대에서 수준이 올려집니다.Objects are not directly allocated in this generation; they are promoted from generation 1 during previous generation 1 garbage collections. 이 카운터는 각 할당이 아니라 가비지 컬렉션이 끝날 때 업데이트됩니다.This counter is updated at the end of a garbage collection, not at each allocation.
Large Object Heap sizeLarge Object Heap size 대형 개체 힙의 현재 크기(바이트)를 표시합니다.Displays the current size, in bytes, of the Large Object Heap. 85,000바이트보다 큰 개체는 가비지 수집기에서 대형 개체로 처리되며, 특별한 힙에 직접 할당하기 때문에 이 개체는 세대 간에 수준이 오르지 않습니다.Objects that are greater than approximately 85,000 bytes are treated as large objects by the garbage collector and are directly allocated in a special heap; they are not promoted through the generations. 이 카운터는 각 할당이 아니라 가비지 컬렉션이 끝날 때 업데이트됩니다.This counter is updated at the end of a garbage collection, not at each allocation.
프로세스 IDProcess ID 모니터링 중인 CLR 프로세스 인스턴스의 프로세스 ID를 표시합니다.Displays the process ID of the CLR process instance that is being monitored.
Promoted Finalization-Memory from Gen 0Promoted Finalization-Memory from Gen 0 단지 종료 대기 중이므로 0세대에서 1세대로 수준이 올려진 메모리 크기(바이트)를 표시합니다.Displays the bytes of memory that are promoted from generation 0 to generation 1 only because they are waiting to be finalized. 이 카운터는 누적되지 않으며, 마지막 가비지 컬렉션이 끝날 때 관찰된 값을 표시합니다.This counter is not cumulative; it displays the value observed at the end of the last garbage collection.
Promoted Memory from Gen 0Promoted Memory from Gen 0 가비지 컬렉션 후에 유지되고 0세대에서 1세대로 수준이 올려진 메모리 크기(바이트)를 표시합니다.Displays the bytes of memory that survive garbage collection and are promoted from generation 0 to generation 1. 단지 종료 대기 중이므로 수준이 올려진 개체는 이 카운터에 포함되지 않습니다.Objects that are promoted only because they are waiting to be finalized are not included in this counter. 이 카운터는 누적되지 않으며, 마지막 가비지 컬렉션이 끝날 때 관찰된 값을 표시합니다.This counter is not cumulative; it displays the value observed at the end of the last garbage collection.
Promoted Memory from Gen 1Promoted Memory from Gen 1 가비지 컬렉션 후에 유지되고 1세대에서 2세대로 수준이 올려진 메모리 크기(바이트)를 표시합니다.Displays the bytes of memory that survive garbage collection and are promoted from generation 1 to generation 2. 단지 종료 대기 중이므로 수준이 올려진 개체는 이 카운터에 포함되지 않습니다.Objects that are promoted only because they are waiting to be finalized are not included in this counter. 이 카운터는 누적되지 않으며, 마지막 가비지 수집이 끝날 때 관찰된 값을 표시합니다.This counter is not cumulative; it displays the value observed at the end of the last garbage collection. 마지막 가비지 수집이 0세대만 수집하는 경우 이 카운터는 0으로 다시 설정됩니다.This counter is reset to 0 if the last garbage collection was a generation 0 collection only.

네트워킹 성능 카운터Networking performance counters

성능 콘솔 .NET CLR 네트워킹 범주에는 응용 프로그램이 네트워크를 통해 보내고 받는 데이터에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR Networking category includes counters that provide information about data that an application sends and receives over the network. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
Bytes ReceivedBytes Received 프로세스가 시작된 이후 AppDomain 내의 모든 Socket 개체가 받은 바이트 수의 누적 합계입니다.The cumulative total number of bytes received by all Socket objects within the AppDomain since the process started. 이 개수에는 TCP/IP에서 정의되지 않은 데이터 및 프로토콜 정보가 포함됩니다.This number includes data and any protocol information that is not defined by TCP/IP.
Bytes SentBytes Sent 프로세스가 시작된 이후 AppDomain 내의 모든 Socket 개체가 보낸 바이트 수의 누적 합계입니다.The cumulative number of bytes sent by all Socket objects within the AppDomain since the process started. 이 개수에는 TCP/IP에서 정의되지 않은 데이터 및 프로토콜 정보가 포함됩니다.This number includes data and any protocol information that is not defined by TCP/IP.
Connections EstablishedConnections Established 프로세스가 시작된 이후 AppDomain 내에서 연결된 스트림 소켓에 대한 Socket 개체 수의 누적 합계입니다.The cumulative total number of Socket objects for stream sockets that were ever connected within the AppDomain since the process started.
Datagrams ReceivedDatagrams Received 프로세스가 시작된 이후 AppDomain 내의 모든 Socket 개체가 받은 데이터그램 패킷 수의 누적 합계입니다.The cumulative total number of datagram packets received by all Socket objects within the AppDomain since the process started.
Datagrams SentDatagrams Sent 프로세스가 시작된 이후 AppDomain 내의 모든 Socket 개체가 보낸 데이터그램 패킷 수의 누적 합계입니다.The cumulative total number of datagram packets sent by all Socket objects within the AppDomain since the process started.
HttpWebRequest Average LifetimeHttpWebRequest Average Lifetime 프로세스가 시작된 이후 AppDomain 내에서 마지막 간격에 끝난 모든 HttpWebRequest 개체의 평균 완료 시간입니다.The average time to completion for all HttpWebRequest objects that ended in the last interval within the AppDomain since the process started.
HttpWebRequest Average Queue TimeHttpWebRequest Average Queue Time 프로세스가 시작된 이후 AppDomain 내에서 마지막 간격에 큐에서 제거된 모든 HttpWebRequest 개체의 평균 큐 대기 시간입니다.The average time-on-queue for all HttpWebRequest objects that left the queue in the last interval within the AppDomain since the process started.
HttpWebRequests Created/secHttpWebRequests Created/sec AppDomain 내에서 초당 만들어진 HttpWebRequest 개체 수입니다.The number of HttpWebRequest objects created per second within the AppDomain.
HttpWebRequests Queued/secHttpWebRequests Queued/sec AppDomain 내에서 초당 큐에 추가된 HttpWebRequest 개체 수입니다.The number of HttpWebRequest objects that were added to the queue per second within the AppDomain.
HttpWebRequests Aborted/secHttpWebRequests Aborted/sec AppDomain 내에서 초당 응용 프로그램이 Abort 메서드를 호출한 HttpWebRequest 개체 수입니다.The number of HttpWebRequest objects where the application called the Abort method per second within the AppDomain.
HttpWebRequests Failed/secHttpWebRequests Failed/sec AppDomain 내에서 초당 서버로부터 실패 상태 코드를 받은 HttpWebRequest 개체 수입니다.The number of HttpWebRequest objects that received a failed status code from the server per second within the AppDomain.

지원되는 네트워킹 성능 카운터의 클래스는 다음과 같습니다.There are several classes of networking performance counters supported:

  • 일부 이벤트가 발생한 횟수를 측정하는 이벤트 카운터Event counters that measure the number of times some event occurred.

  • 보내거나 받은 데이터 수량을 측정하는 데이터 카운터Data counters that measure the quantity of data sent or received.

  • 각 프로세스의 소요 시간을 측정하는 기간 카운터Duration counters that measure how long different processes take. 개체가 다른 상태에서 전환된 후 각 간격(일반적으로 초 단위)마다 개체에서 시간을 측정합니다.The times are measured on the objects each interval (usually in seconds) after they come out of different states.

  • 간격당(일반적으로 초당) 특정 전환을 수행하는 개체 수를 측정하는 간격당 카운터Per-Interval counters that measure the number of objects that are making a particular transition per interval (normally per second).

이벤트에 대한 네트워킹 성능 카운터는 다음과 같습니다.The networking performance counters for events include the following:

  • Connections EstablishedConnections Established

  • Datagrams ReceivedDatagrams Received

  • Datagrams SentDatagrams Sent

이러한 성능 카운터는 프로세스가 시작된 이후의 개수를 제공합니다.These performance counters provide counts since the process started. 설정된 Socket 연결 수에는 설정된 스트림 소켓 연결에 대한 응용 프로그램의 명시적 Socket 메서드 호출 및 Socket 클래스에 대한 다른 클래스(예: HttpWebRequest, FtpWebRequest, WebClientTcpClient)의 내부 호출이 포함됩니다.The counts of Socket connections established includes explicit Socket method calls by an application for a stream socket connection that was established as well as internal calls made by other classes (HttpWebRequest, FtpWebRequest, WebClient, and TcpClient, for example) to Socket class

Datagrams ReceivedDatagrams Sent 개수에는 응용 프로그램의 명시적 Socket 메서드 호출 및 Socket 클래스에 대한 다른 클래스(예: UdpClient)의 내부 호출을 사용하여 보냈거나 받은 데이터그램 패킷이The counts for Datagrams Received and Datagrams Sent includes datagram packets sent or received using explicit Socket method calls by an application as well internal calls made by other classes (UdpClient, for example) to Socket. 포함됩니다.class. Datagrams ReceivedDatagrams Sent 개수를 통해 데이터그램의 평균 크기를 가정하여 데이터그램으로 보냈거나 받은 바이트 수의 대략적인 측정값을 제공할 수도 있습니다.The counts Datagrams Received and Datagrams Sent may also be used to provide a very crude measure of how many bytes were sent or received using datagrams by assuming an average size for a datagram.

데이터에 대한 네트워킹 성능 카운터는 다음과 같습니다.The networking performance counters for data include the following:

  • Bytes ReceivedBytes Received

  • Bytes SentBytes Sent

위 카운터는 프로세스가 시작된 이후의 바이트 수를 제공합니다.The above counters provide counts of bytes since the process started.

HttpWebRequest 개체가 전체 수명 주기나 일부만 통과하는 데 소요된 시간을 측정하는 다음 두 개의 기간 카운터가 있습니다.There are two duration counters that measure how long it took for HttpWebRequest objects to pass through either their entire life cycle or just part of it:

  • HttpWebRequest Average LifetimeHttpWebRequest Average Lifetime

  • HttpWebRequest Average Queue TimeHttpWebRequest Average Queue Time

HttpWebRequest Average Lifetime 카운터의 경우 대부분의 HttpWebRequest 개체 수명은 항상 개체를 만든 시간부터 응용 프로그램이 응답 스트림을 닫은 시간까지입니다.For the HttpWebRequest Average Lifetime counter, the lifetime of most HttpWebRequest objects always starts with the time that the object is created up until the time that the response stream is closed by the application. 두 가지 특수한 경우는 다음과 같습니다.There are two uncommon cases:

  • 응용 프로그램이 GetResponse 또는 BeginGetResponse 메서드를 호출하지 않는 경우 HttpWebRequest 개체의 수명은 무시됩니다.If the application never calls the GetResponse or BeginGetResponse methods, then the lifetime of the HttpWebRequest object is ignored.

  • HttpWebRequest 개체가 GetResponse 또는 EndGetResponse 메서드를 호출할 때 WebException이 발생하는 경우 수명은 예외가 발생할 때 종료됩니다.If the HttpWebRequest object throws a WebException when calling the GetResponse or EndGetResponse methods, the lifetime ends when the exception is thrown. 기술적으로, 기본 응답 스트림도 해당 시점에 닫힙니다(사용자에게 반환되는 응답 스트림은 실제로 응답 스트림의 복사본을 포함하는 메모리 스트림임).Technically, the underlying response stream is also closed at that point (the response stream returned to the user is really a memory stream containing a copy of the response stream).

간격당 특정 HttpWebRequest 개체 문제를 추적하는 4개의 카운터가 있습니다.There are four counters that track certain HttpWebRequest object issues per interval. 이러한 성능 카운터는 응용 프로그램 개발자, 관리자 및 지원 담당자가 HttpWebRequest 개체의 성능을 파악하는 데 도움이 됩니다.These performance counters can help application developers, administrators, and support staff better understand what the HttpWebRequest objects are doing. 해당 카운터는 다음과 같습니다.The counters include the following:

  • HttpWebRequests Created/secHttpWebRequests Created/sec

  • HttpWebRequests Queued/secHttpWebRequests Queued/sec

  • HttpWebRequests Aborted/secHttpWebRequests Aborted/sec

  • HttpWebRequests Failed/secHttpWebRequests Failed/sec

HttpWebRequests Aborted/sec 카운터의 경우 Abort에 대한 내부 호출도 계산됩니다.For the HttpWebRequests Aborted/sec counter, internal calls to Abort are also counted. 이러한 내부 호출은 일반적으로 응용 프로그램이 측정하려는 시간 제한에 의해 발생합니다.These internal calls are usually caused by timeouts that an application may want to measure.

HttpWebRequests Failed/sec 카운터에는 초당 서버로부터 실패 상태 코드를 받은 HttpWebRequest 개체 수가 포함됩니다.The HttpWebRequests Failed/sec counter contains the number of HttpWebRequest objects that received a failed status code from the server per second. 이는 요청이 끝날 때 HTTP 서버로부터 받은 상태 코드가 200에서 299 사이의 범위에 없음을 의미합니다.This means that the status code received from the Http server at the end of the request was not in the range between 200 to 299. 처리된 후 새 요청을 생성하는 상태 코드(예: 대부분의 401 권한이 없음 상태 코드)는 다시 시도 결과에 따라 실패 여부가 결정됩니다.Status codes that are handled and result in a new request (many of the 401 Unauthorized status codes, for example) will fail or not fail based on the result of the retry. 다시 시도에 따라 응용 프로그램에 오류가 표시되는 경우 이 카운터가 증가합니다.If the application would see an error based on the retry, then this counter is incremented.

네트워킹 성능 카운터는 System.Diagnostics 네임스페이스의 PerformanceCounter 및 관련 클래스를 통해 액세스하고 관리할 수 있습니다.Networking performance counters can be accessed and managed using the PerformanceCounter and related classes in the System.Diagnostics namespace. Windows 성능 모니터 콘솔을 통해 네트워킹 성능 카운터를 볼 수도 있습니다.Networking performance counters can also be viewed with the Windows Performance Monitor console.

네트워킹 성능 카운터를 사용하려면 구성 파일에서 사용하도록 설정해야 합니다.Networking performance counters need to be enabled in the configuration file to be used. 구성 파일의 단일 설정을 통해 모든 네트워킹 성능 카운터를 사용하거나 사용하지 않도록 설정합니다.All networking performance counters are enabled or disabled with a single setting in the configuration file. 개별 네트워킹 성능 카운터를 사용하거나 사용하지 않도록 설정할 수는 없습니다.Individual networking performance counters cannot be enabled or disabled. 자세한 내용은 <performanceCounter> 요소(네트워크 설정)를 참조하세요.For more information, see <performanceCounter> Element (Network Settings).

네트워킹 카운터를 사용하도록 설정하면 AppDomain별 성능 카운터와 전역 성능 카운터가 모두 생성 및 업데이트됩니다.If networking counters are enabled, this will create and update both per-AppDomain and global performance counters. 사용하지 않도록 설정하면 응용 프로그램이 네트워킹 성능 카운터 데이터를 제공하지 않습니다.If disabled, the application will not provide any networking performance counter data.

성능 카운터는 범주로 그룹화되어 있습니다.Performance counters are grouped into Categories. 다음 예제 코드를 사용하여 응용 프로그램에 모든 범주를 나열할 수 있습니다.An application can list all of the categories with the following example code:

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();  
for (int i = 0; i < Array.Length; i++)  
{  
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);  
}  

네트워킹 성능 카운터는 다음 두 가지 범주에 나열됩니다.The networking performance counters are listed in two categories:

  • ".NET CLR 네트워킹" - .NET Framework 버전 2에서 도입되었으며 .NET Framework 버전 2 이상에서 지원되는 원래 성능 카운터".NET CLR Networking" - the original performance counters introduced on .NET Framework Version 2 and supported on .NET Framework Version 2 and later.

  • ".NET CLR 네트워킹 4.0.0.0" - 위의 모든 소켓 카운터 및 .NET Framework 버전 4 이상에서 지원되는 새 성능 카운터".NET CLR Networking 4.0.0.0" - All of the above socket counters plus the new performance counters supported on .NET Framework Version 4 and later. 이러한 새 카운터는 HttpWebRequest 개체에 대한 성능 정보를 제공합니다.These new counters provide performance information on HttpWebRequest objects.

애플리케이션에서 성능 카운터에 액세스하고 관리하는 방법에 대한 자세한 내용은 성능 카운터를 참조하세요.For more information on accessing and managing performance counters in an application, see Performance Counters.

보안 성능 카운터Security performance counters

성능 콘솔 .NET CLR 보안 범주에는 공용 언어 런타임이 응용 프로그램에 대해 수행하는 보안 검사에 대한 정보를 제공하는 카운터가 포함됩니다.The Performance console .NET CLR Security category includes counters that provide information about the security checks that the common language runtime performs for an application. 다음 표에서는 이러한 성능 카운터에 대해 설명합니다.The following table describes these performance counters.

성능 카운터Performance counter 설명Description
# Link Time Checks# Link Time Checks 응용 프로그램이 시작된 이후 링크 타임 코드 액세스 보안 검사의 총수를 표시합니다.Displays the total number of link-time code access security checks since the application started. 링크 타임 코드 액세스 보안 검사는 호출자가 JIT(Just-In-Time) 컴파일 타임에 특정 권한을 요구하는 경우에 수행됩니다.Link-time code access security checks are performed when a caller demands a particular permission at just-in-time (JIT) compile time. 링크 타임 검사는 호출자당 한 번 수행됩니다.A link-time check is performed once per caller. 이 개수는 심각한 성능 문제가 아니라 단순히 보안 시스템 동작을 나타냅니다.This count is not indicative of serious performance issues; it is merely indicative of the security system activity.
% Time in RT checks% Time in RT checks 마지막 샘플 이후 런타임 코드 액세스 보안 검사를 수행하는 데 소요된 경과 시간의 백분율을 표시합니다.Displays the percentage of elapsed time spent performing runtime code access security checks since the last sample. 이 카운터는 .NET Framework 보안 검사가 끝날 때 업데이트됩니다.This counter is updated at the end of a .NET Framework security check. 평균이 아니라 마지막으로 관찰된 값을 나타냅니다.It is not an average; it represents the last observed value.
% Time Sig Authenticating% Time Sig Authenticating 나중에 사용하기 위해 예약되어 있습니다.Reserved for future use.
Stack Walk DepthStack Walk Depth 마지막 런타임 코드 액세스 보안 검사 중 스택의 깊이를 표시합니다.Displays the depth of the stack during that last runtime code access security check. 런타임 코드 액세스 보안 검사는 스택을 따라 수행됩니다.Runtime code access security checks are performed by walking the stack. 이 카운터는 평균이 아니라 마지막으로 관찰된 값만 표시합니다.This counter is not an average; it displays only the last observed value.
Total Runtime ChecksTotal Runtime Checks 응용 프로그램이 시작된 이후 수행된 런타임 코드 액세스 보안 검사의 총수를 표시합니다.Displays the total number of runtime code access security checks performed since the application started. 런타임 코드 액세스 보안 검사는 호출자가 특정 권한을 요구하는 경우에 수행됩니다.Runtime code access security checks are performed when a caller demands a particular permission. 런타임 검사는 호출자에 의해 각 호출에서 수행되고 호출자의 현재 스레드 스택을 검사합니다.The runtime check is made on every call by the caller and examines the current thread stack of the caller. Stack Walk Depth 카운터와 함께 사용할 경우 이 카운터는 보안 검사에 대해 발생하는 성능 저하를 나타냅니다.When used with the Stack Walk Depth counter, this counter indicates the performance penalty that occurs for security checks.

참고자료See also