다음을 통해 공유


런타임 프로파일링

비고

이 문서는 .NET Framework에만 적용됩니다. .NET 6 이상 버전을 포함하여 .NET의 최신 구현에는 적용되지 않습니다.

프로파일링은 모든 개발 또는 배포 시나리오에서 성능 데이터를 수집하는 방법입니다. 이 섹션은 애플리케이션 성능에 대한 정보를 수집하려는 개발자 및 시스템 관리자를 위한 것입니다.

성능 모니터(Perfmon.exe)를 사용하여 성능 추적

성능 모니터는 .NET Framework 애플리케이션을 프로파일하는 데 사용할 수 있는 가장 쉬운 도구입니다. 성능 모니터는 공용 언어 런타임 및 Windows SDK와 함께 설치된 .NET Framework 성능 카운터에 있는 데이터를 그래픽으로 나타냅니다. 이러한 카운터를 사용하여 메모리 관리에서 JIT(Just-In-Time) 컴파일러 성능에 이르기까지 모든 것을 모니터링할 수 있습니다. 애플리케이션 성능의 간접 측정값인 애플리케이션에서 사용하는 리소스에 대해 알려줍니다. 이러한 카운터를 사용하여 애플리케이션이 내부적으로 작동하는 방식을 이해합니다.

Windows Vista 이상 버전에서 Perfmon.exe 실행하려면

  1. 명령 프롬프트에서 perfmon을 입력합니다. 성능 모니터 콘솔이 나타납니다.

  2. 모니터링 도구 폴더에서 성능 모니터를 클릭합니다.

  3. 성능 모니터 도구 모음에 있는 경우 추가 아이콘(더하기 기호)을 클릭합니다. 없는 경우 모니터 창을 마우스 오른쪽 단추로 클릭하고 카운터 추가 옵션을 선택합니다.

    그러면 카운터 추가 대화 상자가 열립니다. 사용 가능한 카운터 목록 상자에 사용 가능한 성능 개체가 표시됩니다. 메모리 관리(.NET CLR Memory), 상호 운용성(.NET CLR Interop), 예외 처리(.NET CLR Exceptions), 다중 스레딩(.NET CLR LocksAndThreads)을 포함하여 .NET Framework 애플리케이션에 대해 미리 정의된 개체가 많이 있습니다. 각 성능 개체에는 여러 개별 성능 카운터가 포함됩니다. 성능 모니터에서 사용할 수 있는 성능 카운터 목록은 성능 카운터를 참조하세요.

  4. 성능 개체 이름 옆에 있는 확인란을 선택하여 지원하는 개별 성능 카운터 목록을 봅니다.

  5. 보려는 성능 카운터를 클릭합니다.

  6. 선택한 개체 목록 상자의 인스턴스에서 모든 인스턴스<를 클릭하여> 공용 언어 런타임의 성능 카운터를 전역적으로 모니터링하도록 지정합니다(즉, 시스템 차원 기준).

    -또는-

    선택한 개체 목록 상자의 인스턴스에서 애플리케이션 이름을 클릭하여 해당 애플리케이션의 성능 카운터를 모니터링합니다.

    여러 버전의 런타임을 구분하거나 이름이 같은 여러 애플리케이션을 구분하려면 레지스트리 키도 수정해야 합니다. 자세한 내용은 성능 카운터 및 In-Process Side-By-Side 애플리케이션을 참조하세요.

비고

성능 콘솔이 실행되는 동안 새 성능 카운터가 설치되면 성능 콘솔을 중지하고 다시 시작하여 새 카운터를 표시합니다.

영역 또는 원격 공유에 있는 어셈블리를 프로파일하려는 경우 원격 어셈블리가 성능 카운터를 실행하는 컴퓨터에 대한 완전 신뢰가 있는지 확인합니다. 어셈블리에 충분한 신뢰가 없으면 성능 카운터가 작동하지 않습니다. 다른 영역에 트러스트를 부여하는 방법에 대한 자세한 내용은 Caspol.exe(코드 액세스 보안 정책 도구)를 참조하세요.

비고

.NET Framework 4가 설치된 시스템에서 성능 모니터는 .NET Framework 1.1을 사용하여 개발된 애플리케이션의 경우 .NET CLR 데이터.NET CLR 네트워킹과 같은 일부 범주에서 성능 카운터에 대한 데이터를 표시하지 않을 수 있습니다. 이 경우 forcePerformanceCounterUniqueSharedMemoryReads< 요소를 애플리케이션의 구성 파일에 추가하여> 이 데이터를 표시하도록 성능 모니터를 구성할 수 있습니다.

프로그래밍 방식으로 성능 카운터 읽기 및 만들기

.NET Framework는 성능 콘솔에서 사용할 수 있는 것과 동일한 성능 정보에 프로그래밍 방식으로 액세스하는 데 사용할 수 있는 클래스를 제공합니다. 이러한 클래스를 사용하여 사용자 지정 성능 카운터를 만들 수도 있습니다. 다음 표에서는 .NET Framework에서 제공되는 일부 성능 모니터링 클래스에 대해 설명합니다.

클래스 설명
System.Diagnostics.PerformanceCounter Windows 성능 카운터 구성 요소를 나타냅니다. 이 클래스를 사용하여 기존 미리 정의된 또는 사용자 지정 카운터를 읽고 성능 데이터를 사용자 지정 카운터에 게시(쓰기)합니다.
System.Diagnostics.PerformanceCounterCategory 컴퓨터의 카운터 및 범주 카운터와 상호 작용하기 위한 몇 가지 방법을 제공합니다.
System.Diagnostics.PerformanceCounterInstaller PerformanceCounter 구성 요소에 대한 설치 관리자를 지정합니다.
System.Diagnostics.PerformanceCounterType NextValue에 대한 PerformanceCounter 메서드를 계산할 수식을 지정합니다.

참고하십시오