다음을 통해 공유


Windows app 성능 및 기본 사항 개요

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

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

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

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

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

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

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

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

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

성능 측정에 접근하는 방법

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

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

메트릭의 결합

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

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

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

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

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

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

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

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

Windows Performance Analyzer Icon Windows Performance Toolkit

Windows Performance RecorderWindows Performance AnalyzerEvent Tracing for Windows(ETW)를 사용하여 애플리케이션 및 전체 시스템에 대한 자세한 모니터링 및 분석을 사용하도록 설정합니다. 시작하는 방법에 대한 아래 링크를 확인해보세요.

PerfView 아이콘 PerfView

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

SizeBench 아이콘 SizeBench

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

추가 리소스

블로그 및 뉴스

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

커뮤니티 및 지원

성능 및 지속 가능성

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

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

콘텐츠 로드맵

성능은 적절한 지침 없이 개발 프로세스의 까다로운 부분이 될 수 있습니다. 앱 개발자에게 올바른 설명서를 사용할 수 있는지 확인하는 것이 더 빠른 앱을 만드는 핵심입니다. 아래 로드맵은 이 문서 집합에 추가될 다음 페이지와 게시 순서에 대해 자세히 설명합니다. 원하는 내용이나 누락된 항목이 표시되면 이 페이지 하단의 피드백 링크를 통해 GitHub 알려주세요. 우리의 목표는 사용자의 요구에 부합하는 앱 성능을 위한 다방면의 교육용 문서 집합을 제공하는 것이므로 여러분의 의견을 보내 주시기 바랍니다. Windows 애플리케이션 성능과 관련하여 다루었으면 하는 내용에 대한 권장 사항과 함께 아래 페이지에 대한 사용자 의견을 제출해 주시길 바랍니다.

토픽 설명
성능 영역 소개 CPU, 메모리, GPU 등의 컨텍스트에서 성능이 의미하는 것을 설명합니다.
측정할 내용 식별 작업, 환경 및 기타 요인에 따라 특정 성능 영역이 다른 영역 보다 더 집중할 수 있습니다. 이 문서에서 측정하는 내용 및 시기 알아보기
성능 테스트 주기 테스트 환경을 설정하고, 결과를 분석하고, 제품을 개선하는 성능 테스트 수명 주기를 단계별로 안내합니다.
다양한 성능 도구 이해 이 문서에서는 더 많은 성능 도구를 소개하고 사용 사례와 사용 사례에 대한 모범 사례를 제공합니다.
사례 연구 성능 테스트 주기 동안의 일련의 엔드투엔드 시나리오와 그 여정