다음을 통해 공유


런타임 프로파일링

프로파일링은 개발 또는 배포 시나리오에서 성능 데이터를 수집하는 방법입니다. 이 단원은 응용 프로그램 성능에 관한 정보를 얻으려는 개발자 및 시스템 관리자에게 유용합니다.

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

성능 모니터(Windows Vista 및 Windows 7의 안정성 및 성능 모니터)는 .NET Framework 응용 프로그램을 프로파일링하는 데 사용할 수 있는 가장 간편한 도구입니다. 공용 언어 런타임 및 Windows SDK(소프트웨어 개발 키트)와 함께 설치된 .NET Framework 성능 카운터에서 찾은 데이터를 그래픽으로 표시합니다. 이들 카운터는 메모리 관리부터 JIT(Just-In-Time) 컴파일러 성능에 이르기까지 모든 작업을 모니터링하는 데 사용할 수 있습니다. 또한 응용 프로그램에서 사용하는 리소스에 대해 알려주는데, 이는 응용 프로그램의 성능을 간접적으로 측정하는 것입니다. 이 카운터는 응용 프로그램에 내부적으로 어떻게 작동하는지 이해할 수 있습니다.

Windows XP에서 Perfmon.exe를 실행하려면

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

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

    사용 가능한 성능 개체 및 카운터를 표시하는 경우 카운터 추가 대화 상자를 엽니다. .NET Framework 응용 프로그램의 경우에는 메모리 관리용 개체(.NET CLR Memory), 상호 운용성용 개체(.NET CLR Interop), 예외 처리용 개체(.NET CLR Exceptions), 다중 스레딩용 개체(.NET CLR LocksAndThreads) 등의 여러 개체가 미리 정의되어 있습니다. 각 .NET Framework 성능 개체에는 많은 개별 성능 카운터가 포함되어 있습니다.

  3. 성능 개체를 목록에서 보려는 성능 개체를 클릭합니다.

  4. 카운터 목록에서 보려는 성능 카운터를 클릭합니다.

  5. 공용 언어 런타임에 대한 성능 카운터를 전역적으로 모니터링하도록 지정하려면(즉, 시스템 전체에서) 모든 인스턴스를 클릭합니다.

    또는

    목록에서 인스턴스 선택을 클릭하고 해당 응용 프로그램에 대한 성능 카운터를 모니터링할 응용 프로그램을 클릭합니다.

    런타임의 여러 버전을 구분하거나 같은 이름을 가진 여러 응용 프로그램의 모호함을 없애려면 레지스트리 키를 수정해야 합니다. 자세한 내용은 성능 카운터 및 In-Process Side-By-Side 응용 프로그램을 참조하십시오.

Windows 및 and Windows 7에서 Perfmon.exe를 실행하려면

  1. 명령 프롬프트에 perfmon을 입력합니다. 안정성 및 성능 모니터 콘솔(Windows Vista) 또는 성능 모니터 콘솔(Windows7)이 나타납니다.

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

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

    그러면 카운터 추가 대화 상자가 열립니다. 사용 가능한 카운터 목록 상자는 사용할 수 있는 성능 개체를 표시합니다. .NET Framework 응용 프로그램의 경우에는 메모리 관리용 개체(.NET CLR Memory), 상호 운용성용 개체(.NET CLR Interop), 예외 처리용 개체(.NET CLR Exceptions), 다중 스레딩용 개체(.NET CLR LocksAndThreads) 등의 여러 개체가 미리 정의되어 있습니다. 각 성능 개체에는 많은 개별 성능 카운터가 포함되어 있습니다.

  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 NT 성능 카운터 구성 요소를 나타냅니다. 기존의 미리 정의되었거나 사용자 지정 카운터를 읽고 사용자 지정 카운터에 성능 데이터를 게시하는(쓰는) 데 사용합니다.

System.Diagnostics.PerformanceCounterCategory

컴퓨터에서 카운터 및 카운터의 범주와 상호 작용하기 위한 다양한 방법을 제공합니다.

System.Diagnostics.PerformanceCounterInstaller

PerformanceCounter 구성 요소에 대한 설치 관리자를 지정합니다.

System.Diagnostics.PerformanceCounterType

PerformanceCounter의 NextValue 메서드를 계산하는 수식을 지정합니다.

참고 항목

개념

ASP.NET의 성능 카운터

보안 정책 모델

기타 리소스

.NET Framework의 성능 카운터