성능이 뛰어난 앱을 만들려면 앱의 다른 기능을 디자인하는 것처럼 성능을 디자인하고 계획해야 합니다. Microsoft에서 제공하는 도구를 사용하여 앱의 성능을 측정하고 필요한 경우 메모리 사용, 코드 처리량 및 응답성을 개선할 수 있습니다. 이 항목에서는 Microsoft에서 제공하는 성능 분석 도구를 나열하고 앱 개발의 특정 영역에 대한 성능을 다루는 다른 항목에 대한 링크를 제공합니다.
성능 디자인 및 계획
성능이 뛰어난 앱을 원하는 경우 다른 기능을 디자인하는 것처럼 앱에 성능을 디자인해야 합니다. 앱에서 성능에 중요한 시나리오를 결정하고, 성능 목표를 설정하고, 이러한 앱 시나리오에 대한 성능을 조기에 자주 측정해야 합니다. 각 앱은 서로 다르고 성능에 중요한 실행 경로가 다르기 때문에 이러한 경로를 조기에 결정하고 노력을 집중하면 생산성을 최대화할 수 있습니다.
고성능 앱을 만들기 위해 대상 플랫폼에 완전히 익숙해질 필요는 없습니다. 그러나 성능 측면에서 대상 플랫폼의 어느 부분이 비용이 많이 드는지 이해해야 합니다. 개발 프로세스 초기에 성능을 측정하여 이 작업을 수행할 수 있습니다.
성능에 중요한 영역을 결정하고 성능 목표를 설정하려면 항상 사용자 환경을 고려합니다. 시작 시간과 응답성은 앱에 대한 사용자의 인식에 영향을 주는 두 가지 주요 영역입니다. 앱에서 많은 메모리를 사용하는 경우 사용자에게 느려지거나 시스템에서 실행되는 다른 앱에 영향을 주거나 경우에 따라 Windows 스토어 또는 Windows Phone 스토어 제출 프로세스에 실패할 수 있습니다. 또한 코드의 어떤 부분이 더 자주 실행되는지 결정하는 경우 코드의 이러한 부분이 잘 최적화되었는지 확인할 수 있습니다.
성능 분석
전체 개발 계획의 일환으로 개발 중에 앱의 성능을 측정하고 결과를 이전에 설정한 목표와 비교할 지점을 설정합니다. 사용자가 예상하는 환경 및 하드웨어에서 앱을 측정합니다. 앱의 성능을 초기에 자주 분석하여 개발 주기의 뒷부분에서 수정하는 데 비용이 많이 들고 비용이 많이 드는 아키텍처 결정을 변경할 수 있습니다. 다음 섹션에서는 앱을 분석하고 이러한 도구에서 사용되는 이벤트 추적에 대해 설명하는 데 사용할 수 있는 성능 도구에 대해 설명합니다.
성능 도구
다음은 .NET Framework 앱에서 사용할 수 있는 몇 가지 성능 도구입니다.
| 도구 | 설명 |
|---|---|
| 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를 사용하는 방법에 대한 자세한 내용은 블로그 게시물을 참조하세요. |
| Windows 성능 분석기 | 여러 앱이 동일한 컴퓨터에서 실행되는 경우 앱의 메모리 및 스토리지 사용과 같은 전반적인 시스템 성능을 확인하는 데 사용합니다. 이 도구는 Windows 8용 Windows ADK(평가 및 배포 키트)의 일부로 다운로드 센터에서 사용할 수 있습니다. 자세한 내용은 Windows 성능 분석기를 참조하세요. |
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 스토어 앱 | C++, C# 및 Visual Basic을 사용하는 Windows 스토어 앱에 대한 성능 모범 사례 |
| WPF(Windows Presentation Foundation) | WPF 성능 제품군 |
| ASP.NET | ASP.NET 성능 개요 |
관련 항목
| 제목 | 설명 |
|---|---|
| .NET Framework 애플리케이션에서 캐시 | 앱의 성능을 향상시키기 위해 데이터를 캐싱하는 기술을 설명합니다. |
| 지연 초기화 | 특히 앱 시작 시 성능을 향상시키기 위해 필요에 따라 개체를 초기화하는 방법을 설명합니다. |
| 신뢰성 | 서버 환경에서 비동기 예외를 방지하는 방법에 대한 정보를 제공합니다. |
| 응답성이 뛰어난 대규모 .NET Framework 앱 작성 | 관리 코드에서 C# 및 Visual Basic 컴파일러를 다시 작성하여 수집한 성능 팁을 제공하고 C# 컴파일러의 몇 가지 실제 예제를 포함합니다. |
.NET