Visual Studio 성능 팁과 요령
Visual Studio 성능 권장 사항은 드물게 발생할 수 있는 메모리 부족 상황에 대처하기 위해 제공됩니다. 이러한 상황에서는 사용하지 않는 특정 Visual Studio 기능을 최적화할 수 있습니다. 아래에서 제시하는 팁은 일반적인 권장 사항이 아닙니다.
참고 항목
메모리 문제로 인해 제품을 사용하는 데 어려움이 있는 경우 피드백 도구를 통해 알려 주세요.
64비트 OS 사용
Windows 32비트 버전에서 64비트 버전으로 시스템을 업그레이드하면 Visual Studio에서 사용 가능한 가상 메모리가 2GB에서 4GB로 확장됩니다. 64비트 운영 체제 업그레이드를 통해 Visual Studio는 더 큰 워크로드를 처리할 수 있습니다.
자세한 내용은 Windows 및 Windows Server 릴리스의 메모리 제한을 참조 하세요.
팁
Visual Studio 2022는 64비트 애플리케이션입니다. 이전 버전은 32비트입니다.
자동 파일 복원 사용 안 함
Visual Studio는 이전 세션에서 열려진 문서를 자동으로 다시 엽니다. 이 자동 파일 복구 기능은 열려 있는 프로젝트 형식 및 문서에 따라 최대 솔루션을 로드하는 데 걸리는 시간이 30% 이상 오래 걸릴 수 있습니다. Windows Forms와 XAML 및 일부 JavaScript와 TypeScript 파일 등 디자이너는 여는 속도가 느릴 수 있습니다.
Visual Studio는 자동 문서 복원이 솔루션을 느리게 로드하는 경우 이를 노란색 표시줄에서 알려줍니다. 다음과 같은 단계를 수행하여 자동으로 파일 다시 열기를 해제할 수 있습니다.
도구>옵션을 선택하여 옵션 대화 상자를 엽니다.
프로젝트 및 솔루션>일반 페이지에서 솔루션 로드 시 문서 다시 열기의 선택을 취소합니다.
자동 파일 복원을 사용하지 않으면 이동 명령 중 하나를 사용하여 열려는 파일로 빠르게 이동할 수 있습니다.
일반 이동 기능의 경우 편집>이동>전체로 이동을 선택하거나 Ctrl+T를 누릅니다.
편집>이동>마지막 편집 위치로 이동을 사용하거나 Ctrl+Shift+Backspace를 눌러서 솔루션의 마지막 편집 위치로 이동합니다.
최근에 사용한 파일로 이동을 사용하여 솔루션에서 최근에 방문한 파일 목록을 확인합니다. 편집>이동>최근 파일로 이동을 선택하거나 Ctrl+1, Ctrl+R을 누릅니다.
디버깅 옵션 구성
디버깅 세션 중에 메모리가 부족한 상황이 반복되면 하나 이상의 구성을 변경하여 성능을 최적화할 수 있습니다.
내 코드만 사용
가장 간단한 최적화는 내 코드만 기능을 사용하여 내 프로젝트의 기호만 로드하는 것입니다. 이 기능을 사용하면 관리되는 애플리케이션(.NET)을 디버그할 때 상당한 메모리가 절약될 수 있습니다. 일부 프로젝트 형식에서는 이 옵션이 기본적으로 사용됩니다.
내 코드만 기능을 사용하려면 도구>옵션>디버깅>일반을 선택한 다음, 내 코드만 사용을 선택합니다.
로드할 기호 지정
네이티브 디버깅의 경우 기호 파일(.pdb)을 로드하면 메모리 리소스가 많이 소비됩니다. 디버거 기호 설정을 구성하면 메모리를 절약할 수 있습니다. 일반적으로는 내 프로젝트의 모듈만 로드하도록 솔루션을 구성합니다.
기호 로딩을 지정하려면 도구>옵션>디버깅>기호를 선택합니다.
옵션을 모든 모듈 대신 지정된 모듈만으로 설정하고 로드할 모듈을 지정합니다. 디버깅 중에 모듈 창의 특정 모듈을 마우스 오른쪽 단추로 클릭하여 기호 로드에 모듈을 명시적으로 포함할 수도 있습니다. 디버깅 중에 이 창을 열려면 디버그>창>모듈을 선택합니다.
자세한 내용은 이 디버거에서 기호 파일 및 소스 파일 지정을 참조하세요.
진단 도구 사용 안 함
CPU 프로파일링은 사용 후 해제하는 것이 좋습니다. 이 기능은 많은 리소스를 소비할 수 있습니다. CPU 프로파일링을 한 번 사용하면 이후 디버그 세션에서도 계속 사용되므로 작업을 마쳤으면 명시적으로 해제하는 것이 좋습니다. 진단 도구가 제공하는 기능이 필요하지 않은 경우 디버깅 중에 진단 도구를 해제하여 일부 리소스를 절약할 수 있습니다.
진단 도구를 사용하지 않도록 설정하려면 디버깅 세션을 시작하고 도구>옵션>디버깅>일반을 선택한 다음 디버그하는 동안 진단 도구 사용 옵션을 선택 취소합니다.
자세한 내용은 프로파일링 도구를 참조하세요.
도구 및 확장 기능 사용 안 함
일부 도구 또는 확장 기능을 해제하여 성능을 개선할 수 있습니다.
팁
확장 기능을 하나씩 끄면서 성능을 재확인하여 성능 문제의 원인을 파악할 수 있는 경우가 많습니다.
관리 언어 서비스(Roslyn)
.NET 컴파일러 플랫폼("Roslyn") 성능 고려 사항에 대한 자세한 내용은 대규모 솔루션에 대한 성능 고려 사항을 참조하세요.
CodeLens 사용 안 함
Visual Studio는 각 메서드가 표시될 때 모든 참조 찾기 작업을 수행합니다. CodeLens는 참조 횟수를 인라인으로 표시하는 등의 기능을 제공합니다. 이때 별도의 프로세스(예: ServiceHub.RoslynCodeAnalysisService32)로 작업이 수행됩니다. 대규모 솔루션이나 리소스가 제한된 시스템에서는 이 기능이 성능에 상당한 영향을 줄 수 있습니다. 메모리 문제가 발생하는 경우(예: 4GB 컴퓨터에서 대규모 솔루션을 로드하거나 이 프로세스의 CPU 사용량이 많은 경우) CodeLens를 사용하지 않고 리소스를 확보할 수 있습니다.
CodeLens를 해제하려면 도구>옵션>텍스트 편집기>모든 언어>CodeLens를 선택하고 기능을 선택 취소합니다.
자세한 내용은 CodeLens에서 코드 변경 내용 및 기타 기록 찾기를 참조하세요.
기타 도구 및 확장 기능
확장 기능 사용 안 함
확장 기능은 Visual Studio에 추가된 부가적인 소프트웨어 구성 요소로서 새로운 기능을 제공하거나 기존 기능을 확장합니다. 확장 기능은 메모리 리소스 문제의 원인이 될 수도 있습니다. 메모리 리소스 문제가 발생하는 경우 확장 기능을 하나씩 해제하면서 시나리오나 워크플로에 어떠한 영향이 있는지 확인해 보세요.
확장을 사용하지 않으려면 확장>확장 관리로 이동하여 특정 확장을 사용하지 않도록 설정합니다.
지도 모드 사용 안 함
지도 모드에서는 스크롤 막대에 코드 줄이 작게 표시됩니다. 지도 모드는 기본적으로 사용하도록 설정됩니다.
지도 모드를 사용하지 않도록 설정하려면 도구>옵션>텍스트 편집기>모든 언어>스크롤 막대로 이동한 후 동작 섹션에서 세로 스크롤 막대에 지도 모드 사용 옵션을 선택 취소합니다.
자동 줄 바꿈 사용 안 함
자동 줄 바꿈을 사용하면 코드 편집기 창의 현재 너비를 벗어나는 긴 코드 줄의 해당 부분이 표시됩니다. 자동 줄 바꿈은 기본적으로 설정되어 있습니다.
현재 작업 중인 프로젝트에 대해 자동 줄 바꿈을 사용하지 않도록 설정하려면 편집>고급>자동 줄 바꿈으로 이동합니다. (동일한 메뉴 명령을 사용하여 이 설정을 전환할 수 있습니다.)
모든 프로젝트에 대해 자동 줄 바꿈 기능을 사용하지 않도록 설정하려면 도구>옵션>일반>텍스트 편집기>모든 언어>일반으로 이동한 후 설정 섹션에서 자동 줄 바꿈 옵션을 선택 취소합니다.
XAML 디자이너 사용 안 함
XAML 디자이너는 기본적으로 사용되지만 .xaml 파일을 열 때만 리소스를 소비합니다. XAML 파일로 작업하지만 디자이너 기능은 사용하지 않으려는 경우 이 기능을 해제하여 일부 메모리를 확보할 수 있습니다.
XAML 디자이너를 사용하지 않도록 설정하려면 도구>옵션>XAML 디자이너>XAML 디자이너 사용으로 이동하여 옵션을 선택 취소합니다.
워크로드 제거
Visual Studio 설치 관리자를 사용하여 더 이상 사용되지 않는 워크로드를 제거할 수 있습니다. 이렇게 하면 더 이상 필요하지 않은 패키지 및 어셈블리를 건너뜀으로써 시작 및 런타임 비용을 줄일 수 있습니다.
추적되지 않은 파일을 로컬 .gitignore에 추가
Visual Studio는 추적되지 않은 파일을 사용하여 Git 명령
git status
을 실행함으로써 리포지토리에 새 파일을 추가할 때 원활한 환경을 제공합니다. 추적되지 않은 파일이 많은 경우에는git status
가 추가 메모리를 사용할 수 있습니다. 이러한 파일을 무시하고git status
의 성능을 향상시키기 위해 이러한 파일 또는 폴더를 로컬 .gitignore 파일에 추가할 수 있습니다. 파일에 액세스하려면 Git>설정>Git 리포지토리 설정으로 이동합니다. 그런 다음 Git 파일 섹션에서 추가를 선택하여 .gitignore 파일을 만들거나 이 파일이 이미 있다면 편집을 선택합니다.Git 도구에서 커밋 그래프 사용
Visual Studio 2022 버전 17.2의 새로운 기능: Visual Studio에서 Git 리포지토리 또는 분기 기록을 볼 때 지연이 발생하는 경우 도움이 될 수 있는 "커밋 그래프" 기능을 통합했습니다. 커밋 그래프를 사용하려면 Visual Studio 2022를 다운로드 및 설치해야 합니다. 커밋 그래프에 대한 자세한 내용은 Visual Studio에서 Git 환경 개선 블로그 게시물을 참조하세요.
가비지 수집 강제 실행
CLR은 가비지 수집 메모리 관리 시스템을 사용합니다. 이 시스템에서는 더 이상 필요하지 않은 개체에 메모리가 사용될 수도 있습니다. 이 상태는 일시적이며, 찌꺼기 수집기에서 성능 및 리소스 사용량을 추론하여 메모리를 해제합니다. Visual Studio에서 바로 가기 키를 사용하여 CLR이 미사용 메모리를 모두 수집하도록 강제할 수 있습니다. 수집 대기 중인 찌꺼기가 상당히 많을 때 찌꺼기 수집을 강제 실행하면 작업 관리자에서 devenv.exe 프로세스의 메모리 사용량이 감소하는 것을 확인할 수 있습니다. 이 방법을 사용해야 하는 경우는 거의 없습니다. 그러나 전체 빌드, 디버그 세션 또는 솔루션 열기 이벤트와 같이 부담이 큰 작업이 완료된 후 프로세스에서 실제로 사용 중인 메모리의 양을 확인하는 데 도움이 됩니다. Visual Studio는 관리 방식과 네이티브가 혼합된 환경이므로 경우에 따라서는 네이티브 할당자와 가비지 수집기가 제한된 메모리 리소스를 두고 경쟁할 수 있습니다. 메모리 사용량이 많은 상황에서는 가비지 수집기를 강제 실행하는 방법이 유용할 수 있습니다.
찌꺼기 수집을 강제 실행하려면 Ctrl+Alt+Shift+F12, Ctrl+Alt+Shift+F12 키보드 단축키를 사용합니다(두 번 누름).
찌꺼기 수집을 강제 실행해야 시나리오가 안정적으로 작동한다면, 이 동작은 버그일 가능성이 크므로 Visual Studio 피드백 도구를 통해 보고해 주시기 바랍니다.
CLR 가비지 수집기에 대한 자세한 내용은 가비지 수집 기본 사항을 참조하세요.