다음을 통해 공유


Windows 앱 성능 및 기본 사항 개요

애플리케이션의 성능과 기본 사항을 개선하면 고객의 시간, 비용, 배터리 수명 및 개발 노력을 절약하면서 세련되고 숙련된 느낌을 가질 수 있습니다. 앱이 전원을 적게 소비하여 배터리 수명이 길어지고 탄소 배출이 감소합니다. 앱은 저렴한 하드웨어에서 더 원활하게 실행됩니다. 고객의 생산성이 향상됩니다.

이 페이지에서는 Windows 애플리케이션의 성능을 측정하고, 이해하고, 개선하기 위한 기술 및 개발 도구에 대한 개요를 제공합니다. UWP 애플리케이션을 작성하는 경우 UWP 성능 설명서도 참조하세요.

애플리케이션 성능이란 무엇이며 중요한 이유는 무엇인가요?

성능은 애플리케이션이 시스템의 리소스를 사용하여 설계한 작업을 얼마나 효과적으로 수행하는지를 측정하는 척도입니다. 다음을 포함하여 프로그램이 기본 디바이스와 상호 작용하는 방식의 다양한 측면을 다룹니다.

  • CPU 사용량
  • 메모리 사용
  • 전력 소비
  • 네트워크 및 스토리지 사용률
  • 애니메이션 성능

이러한 모든 속성에는 관련된 비용 요소가 있습니다. 예를 들어 애플리케이션에서 사용하는 CPU의 양 사용자의 대역폭은 얼마나 사용하나요? 내 애플리케이션의 이 특정 페이지가 얼마나 빨리 로드됩니까?

사용자는 사용하는 소프트웨어의 기본 속성으로 성능을 기대합니다. 애플리케이션이 응답하고 시스템 리소스를 효율적으로 사용하기를 원합니다. 성능이 저하되는 애플리케이션은 좌절을 일으키며 이로 인해 사용자 참여가 감소할 수 있습니다. 따라서 고객에게 최상의 환경을 제공하려면 성능을 개발 워크플로의 정기적인 부분으로 만드는 것이 중요합니다.

애플리케이션 성능을 측정해야 하는 경우는 언제인가요?

애플리케이션 성능은 개발 프로세스의 여러 단계에 걸쳐 있습니다. 이는 선택한 데이터 구조에서 애플리케이션 빌드를 위해 선택한 기술에 이르기까지 모든 것에 영향을 줍니다. 애플리케이션을 개발할 때 성능을 염두에 두고, 애플리케이션을 업데이트하고 유지 관리할 때 정기적으로 성능 테스트를 수행할 계획을 세우십시오.

성능 측정에 접근하는 방법

다음은 성능을 위해 애플리케이션 테스트에 접근하는 방법에 대한 몇 가지 제안 사항입니다.

  • 애플리케이션에 대한 지식을 활용합니다. 사용자에게 가장 일반적인 시나리오를 이해하면 올바른 작업을 최적화하는 데 시간을 현명하게 소비할 수 있습니다. 사용자가 애플리케이션과 상호 작용하는 방법에 대한 데이터를 사용할 수 있는 경우 이 데이터를 살펴보는 것이 좋습니다.
    • 사용자가 대부분의 시간을 보내는 위치는 어디인가요?
    • 고객이 소프트웨어로 수행하는 가장 중요한 작업은 무엇인가요?
    • 애플리케이션의 하드웨어 요구 사항은 무엇인가요?
  • 가장 중요한 사용자 시나리오에 대한 성능 목표를 설정합니다.
  • 최적화하려는 항목에 대해 정확하게 설명합니다. CPU인가요? 배터리? 네트워크 처리량?
  • 측정을 수행하는 데 사용할 도구를 선택합니다.
  • 테스트할 때 과학적 사고방식을 적용합니다. 제어된 환경에서 벤치마크를 만듭니다. 그런 다음 변경 내용을 다시 측정하여 변경 내용이 애플리케이션의 동작에 미치는 영향을 확인합니다.
  • 테스트 환경에 회귀 테스트를 추가합니다. 이렇게 하면 성능 메트릭이 시간이 지남에 따라 회귀하지 않습니다.

메트릭의 결합

일반적으로 분석하는 동안 성능의 한 영역에 집중하지만 영역이 얽혀 있는 경우가 많습니다. 하나의 개선은 다른 영역의 개선으로 연계 될 수 있습니다.

예를 들어 전력 소비를 수정하는 것은 종종 동기화 문제입니다. 메모리 사용량을 줄이면 CPU 사용 시간이 단축될 수 있습니다. 한 영역에서 소비되는 추가 리소스가 다른 영역에서 더 큰 영향을 미치는 개선이 발생할 수도 있습니다. 예를 들어 메모리 사용량을 늘리면 캐싱을 통해 네트워크 또는 스토리지 사용률이 감소할 수 있습니다.

변경을 결정하는 것은 고객에게 가장 중요한 사항에 따라 달라집니다.

애플리케이션 성능을 측정하는 데 사용할 수 있는 도구는 무엇인가요?

Windows 애플리케이션의 성능을 측정하는 데 사용할 수 있는 다양한 옵션이 있습니다.

도구 선택에 확신이 없다면 Visual Studio 성능 프로파일러와 Windows Performance Toolkit 중에서 선택하기 문서를 확인하세요.

Visual Studio 아이콘 Visual Studio 성능 프로파일러

Visual Studio는 애플리케이션을 모니터링하고 원본 내에서 인사이트를 제공하는 데 도움이 되는 도구를 제공합니다. 이러한 도구를 사용하여 개발 환경에서 바로 코드를 최적화하는 방법에 대한 자세한 내용은 아래 리소스를 참조하세요.

Windows Performance Analyzer 아이콘 Windows 성능 도구 키트

Windows Performance RecorderWindows Performance Analyzer를 통해 ETW(Windows용 이벤트 추적)를 사용하여 애플리케이션 및 전체 시스템에 대한 자세한 모니터링 및 분석을 수행할 수 있습니다. 시작하는 방법에 대한 아래 링크를 확인해보세요.

PerfView 아이콘 PerfView

PerfView는 .NET 팀에서 .NET 성능 문제를 조사하기 위해 만든 오픈 소스 모니터링 및 분석 도구입니다. .NET 기호 및 관리형 메모리를 디코딩하는 기능이 있기 때문에 관리형 애플리케이션에 적합합니다.

SizeBench 아이콘 SizeBench

SizeBench는 컴파일된 네이티브 코드 바이너리(DLL, EXE 및 기타 PE 파일)의 크기를 조사하고 줄이는 데 도움이 되는 유틸리티입니다.

추가 리소스

블로그 및 뉴스

성능 전문가가 작성한 개발자 블로그를 사용하여 최상의 앱 버전을 구축할 수 있도록 합니다.

커뮤니티 및 지원

성능 및 지속 가능성

성능 엔지니어링은 지속 가능한 소프트웨어 발전과 직접 교차합니다. 대부분의 전력망은 화석 연료를 태워 전기를 생산합니다. 애플리케이션이 PC에서 실행되므로 전기 사용량이 점점 증가합니다. 사용자 한 명의 전기 사용량은 적지만 사용자 기반이 증가하면 전기 사용량이 점점 많아집니다.

성능 엔지니어링이 지속 가능성과 어떻게 교차하는지를 배우는 데 관심이 있나요? 녹색 소프트웨어 엔지니어링 및 Microsoft의 지속 가능한 소프트웨어 블로그의 원칙을 확인하세요.