프로파일러 설정 최적화

Visual Studio의 성능 프로파일러 및 진단 도구 창에는 도구의 전반적인 성능에 영향을 주는 다양한 설정이 있습니다. 일부 설정을 변경하면 분석을 신속하게 실행할 수 있거나 도구에서 결과를 처리하는 동안 추가 대기 시간이 발생할 수 있습니다. 다음은 특정 설정과 성능에 미치는 영향에 대한 요약입니다.

기호 설정

디버거 옵션에 있는 기호 설정(디버그 > 옵션 > 기호 또는 도구 > 옵션 > 디버깅 > 기호)은 도구에서 결과를 생성하는 데 걸리는 시간에 상당한 영향을 줍니다. 기호 서버를 활성화하거나 _NT_SYMBOL_PATH를 사용하면 프로파일러가 보고서에서 로드된 각 모듈에 대해 기호를 요청합니다. 현재, 프로파일러는 자동 기호 로드 기본 설정에 관계없이 항상 모든 기호를 자동으로 로드합니다.

Symbol loading page

기호 로드 진행률은 진단 도구 제목 아래의 출력 창에서 볼 수 있습니다.

Symbol loading progress

다운로드가 완료되면 기호가 캐시되어 향후의 분석 속도는 향상되지만 여전히 파일을 로드하고 분석해야 합니다. 기호를 로드하여 분석 속도가 느려지는 경우 기호 서버를 비활성화하고 기호 캐시를 삭제합니다. 대신, 로컬로 빌드된 기호를 프로젝트에 사용합니다.

외부 코드 표시

성능 프로파일러진단 도구 창에 포함된 대부분의 도구에는 사용자 코드와 외부 코드의 개념이 있습니다. 사용자 코드는 오픈 솔루션 또는 오픈 워크스페이스에서 빌드된 모든 코드입니다. 외부 코드는 그 외의 모든 코드입니다. 이 외부 코드 표시 설정을 비활성화 상태로 유지하거나 내 코드만 표시 설정을 활성화 상태로 유지하면, 도구가 외부 코드를 단일 첫 번째 수준 프레임으로 집계할 수 있게 되어, 결과 표시에 필요한 처리량를 크게 줄일 수 있습니다. 그러면 사용자는 데이터를 최소한으로 처리하면서 속도 저하를 초래한 외부 코드에서 호출된 항목을 확인할 수 있습니다. 가능하면 외부 코드 표시 를 비활성화 상태로 유지하고 분석하고 있는 diagsession에 대해 솔루션 또는 워크스페이스를 오픈 상태가 되도록 합니다.

추적 기간

더 작은 기간을 프로파일링하면 데이터가 줄어들고, 따라서 분석 속도가 빨라집니다. 일반적으로 5분 이하의 성능 데이터로 추적을 제한하는 것이 좋습니다. 예를 들어 CPU 사용량 도구와 같은 몇몇 도구를 통해 도구가 실행 중인 동안 데이터 수집을 일시 중지하여, 분석하려는 시나리오로 수집되는 데이터의 양을 제한할 수 있습니다.

샘플링 빈도

CPU 사용량 도구 및 NET 개체 할당 도구와 같은 특정 도구에서는 샘플링 빈도를 조정할 수 있습니다. 이 샘플링 빈도를 높이면 더 정확하게 측정할 수 있지만 생성되는 데이터의 양이 늘어납니다. 일반적으로 특정 문제를 조사하는 경우를 제외하면 이 설정을 기본 속도로 그대로 두는 것이 좋습니다.

Diag Hub Properties Page

Diag Hub Properties Page

컬렉션 폴더 설정

성능 추적을 저장하거나 해제하기 전에 Visual Studio 프로파일러가 컬렉션 스크래치 디렉토리를 사용해 저장합니다. 기본적으로 프로파일러에서 임시 디렉토리를 사용합니다. 그러나, 먼저 진단 도구 창(디버그>Windows>진단 도구 표시)를 연 다음 도구 선택>설정>일반>스크래치 디렉토리를 다른 디렉토리에 지정할 수 있습니다.

Screenshot of profiler scratch directory.