.NET Framework 성능

성능이 우수한 앱을 만들려면 앱의 다른 모든 기능을 디자인하는 것처럼 성능을 디자인하고 계획해야 합니다. 앱의 성능을 측정할 수 있도록 Microsoft에서 제공하는 도구를 사용하고 필요한 경우 메모리 사용, 코드 처리량 및 응답성을 향상시킬 수 있습니다. 이 항목에는 Microsoft에서 제공하는 성능 분석 도구가 나열되어 있으며, 앱 개발의 특정 영역에 대한 성능을 설명하는 다른 항목의 링크가 제공되어 있습니다.

성능 디자인 및 계획

성능이 우수한 앱을 만들려면 다른 모든 기능을 디자인하는 것처럼 앱에 성능을 디자인해야 합니다. 앱에서 성능이 중요한 시나리오를 확인하고 성능 목표를 설정하며 이러한 앱 시나리오에 대한 성능을 조기에 그리고 자주 측정해야 합니다. 각 앱이 다르고 각 앱의 성능이 중요한 실행 경로도 다르므로 이러한 경로를 조기에 확인하여 노력을 집중하면 생산성을 극대화할 수 있습니다.

고성능 앱을 만들기 위해 대상 플랫폼에 완벽하게 익숙해질 필요는 없습니다. 그러나 대상 플랫폼의 어느 부분이 성능 측면에서 비용이 많이 드는지에 대한 이해도를 높여야 합니다. 개발 프로세스에서 조기에 성능을 측정하여 이렇게 할 수 있습니다.

성능에 중요한 영역을 확인하고 성능 목표를 설정하려면 항상 사용자 경험을 고려합니다. 시작 시간과 응답성은 앱에 대한 사용자의 인식에 영향을 주는 두 가지 주요 영역입니다. 앱이 메모리를 많이 사용하는 경우 사용자에게 느리게 보이거나 시스템에서 실행되고 있는 다른 앱에 영향을 미칠 수 있습니다. 또는 일부 경우 Windows 스토어 또는 Windows Phone 스토어 전송 프로세스가 실패할 수 있습니다. 또한 코드의 어느 부분이 더 자주 실행되는지 확인하면 코드의 이러한 부분이 잘 최적화되었는지도 확인할 수 있습니다.

성능 분석

전체 개발 계획의 일부로, 개발 중에 앱의 성능을 측정하고 결과를 이전에 설정한 목표와 비교하는 지점을 설정합니다. 사용자가 사용할 것으로 예상되는 환경 및 하드웨어에서 앱을 측정합니다. 조기에 그리고 자주 앱의 성능을 분석함으로써 개발 주기의 나중 단계에서 수정할 경우 비용이 많이 들게 될 아키텍처 관련 결정 사항을 변경할 수 있습니다. 다음 섹션에서는 앱을 분석하는 데 사용할 수 있는 성능 도구를 설명하고, 이러한 도구에서 사용되는 이벤트 추적을 설명합니다.

성능 도구

다음은 .NET Framework 앱에 사용할 수 있는 몇 가지 성능 도구입니다.

도구 Description
Visual Studio 성능 분석 Windows 운영 체제를 실행하는 컴퓨터에 배포할 .NET Framework 앱의 CPU 사용률을 분석하는 데 사용합니다.

이 도구는 Visual Studio에서 프로젝트를 연 후 디버그 메뉴에서 사용할 수 있습니다. 자세한 내용은 성능 탐색기를 참조하세요. 참고: Windows Phone 대상으로 지정할 때 Windows Phone 애플리케이션 분석(다음 행 참조)을 사용합니다.
Windows Phone 애플리케이션 분석 Windows Phone 앱의 CPU 및 메모리, 네트워크 데이터 전송 속도, 앱 응답성 및 배터리 소비를 분석하는 데 사용합니다.

이 도구는 Windows Phone SDK를 설치한 후 Visual Studio에서 Windows Phone 프로젝트의 디버그 메뉴에서 사용할 수 있습니다. 자세한 내용은 Windows Phone 8에 대한 앱 프로파일링을 참조하세요.
PerfView CPU 및 메모리 관련 성능 문제를 식별하는 데 사용합니다. 이 도구는 ETW(Windows) 및 CLR 프로파일링 API에 대한 이벤트 추적을 사용하여 고급 메모리 및 CPU 조사뿐만 아니라 가비지 수집 및 JIT 컴파일에 대한 정보를 제공합니다. PerfView를 사용하는 방법에 대한 자세한 내용은 블로그 게시물을 참조하세요.

메모리 관련 문제는 Using PerfView for Memory Investigations(메모리 확인에 PerfView 사용)를 참조하세요.
Windows Performance Analyzer 동일한 컴퓨터에서 여러 앱이 실행되고 있는 경우 앱의 메모리 및 스토리지 사용과 같은 전체 시스템 성능을 확인하는 데 사용합니다. 이 도구는 다운로드 센터에서 Windows 8 Windows ADK(평가 및 배포 키트)의 일부로 사용할 수 있습니다. 자세한 내용은 Windows Performance Analyzer를 참조하세요.

ETW(Windows용 이벤트 추적)

ETW는 실행 중인 코드에 대한 진단 정보를 얻을 수 있는 기술로서, 앞에서 언급한 여러 성능 도구에 필수적입니다. ETW는 .NET Framework 앱 및 Windows에서 특정 이벤트가 발생하면 로그를 만듭니다. ETW를 사용하면 동적으로 로깅을 사용하거나 사용하지 않도록 설정할 수 있어 앱을 다시 시작하지 않고도 프로덕션 환경에서 자세한 추적을 수행할 수 있습니다. .NET Framework는 ETW 이벤트에 대한 지원을 제공하고, ETW는 성능 데이터를 생성하기 위해 여러 프로파일링 및 성능 도구에서 사용됩니다. 이러한 도구는 ETW 이벤트를 자주 사용하거나 사용하지 않도록 설정하므로 익숙해지는 것이 좋습니다. 특정 ETW 이벤트를 사용하여 앱의 특정 구성 요소에 대한 성능 정보를 수집할 수 있습니다. .NET Framework의 ETW 지원에 대한 자세한 내용은 공용 언어 런타임의 ETW 이벤트작업 병렬 라이브러리 및 PLINQ의 ETW 이벤트를 참조하세요.

응용 프로그램 종류별 성능

.NET Framework 앱 형식마다 성능을 평가하기 위한 모범 사례, 고려 사항 및 도구가 다릅니다. 다음 테이블에는 특정 .NET Framework 앱 형식에 대한 성능 항목 링크가 표시되어 있습니다.

앱 형식 참조
모든 플랫폼용 .NET Framework 앱 가비지 수집 및 성능

성능 팁
C++, C#, Visual Basic 작성된 Windows 8.x Microsoft Store 앱 C++, C# 및 Visual Basic을 사용하는 Windows 스토어 앱의 성능 모범 사례
WPF(Windows Presentation Foundation) WPF 성능 제품군
ASP.NET ASP.NET 성능 개요
제목 Description
.NET Framework 애플리케이션에서 캐시 데이터를 캐시하여 앱 성능을 향상시키는 방법을 설명합니다.
초기화 지연 필요한 대로 개체를 초기화하여 성능을 향상시키는 방법을 설명합니다(특히, 앱 시작 시).
신뢰성 서버 환경에서의 비동기 예외 방지에 대한 정보를 제공합니다.
대형 응답성 .NET Framework 응용 프로그램 작성 C# 및 Visual Basic 컴파일러를 관리 코드로 다시 작성하면서 수집한 성능 팁을 제공하고, C# 컴파일러의 실제 몇 가지 예가 포함되어 있습니다.