프로파일링 도구에서 계측 데이터 값 이해

Visual Studio 2017 RC에 대한 최신 설명서는 Visual Studio 2017 RC 설명서를 참조하세요.

계기 프로 파일링 방법의 Visual Studio 레코드 세부 함수 호출, 선 및 프로 파일링 된 응용 프로그램의 지시에 대한 타이밍 정보를 기록합니다.

요구 사항

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional

    프로파일링 도구의 계측 프로파일링 방법에서는 프로파일링된 이진 파일의 대상 함수 시작 및 끝 부분은 물론 이러한 함수의 다른 함수에 대한 각 호출 앞뒤에도 코드를 삽입합니다. 삽입된 코드에서는 다음을 기록합니다.

  • 이 수집 이벤트와 이전 수집 이벤트 간의 간격

  • 운영 체제에서 간격 동안 작업을 수행했는지 여부. 예를 들어 운영 체제는 디스크에서 데이터를 읽고 쓰거나, 다른 프로세스에서 대상 스레드와 또 다른 스레드 간을 전환할 수 있습니다.

    요구 사항

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional

    각 간격에 대해 프로파일러 분석을 수행하면 해당 간격의 끝에 나타난 호출 스택이 다시 생성됩니다. 호출 스택은 특정 시점에 프로세서에서 활성화되는 함수의 목록입니다. 하나의 함수(현재 함수)만 코드를 실행하며 다른 함수는 현재 함수를 호출한 함수 호출의 체인(호출 스택)입니다.

    간격이 기록된 경우 호출 스택의 각 함수에 대해 프로파일러 분석을 수행하면 해당 함수의 네 가지 데이터 값 중 하나 이상에 간격이 추가됩니다. 분석 과정에서 함수의 데이터 값에 간격이 추가될 때는 다음과 같은 두 가지 조건을 기반으로 합니다.

  • 간격이 함수의 코드에서 발생했는지 아니면 자식 함수(이 함수에 의해 호출된 함수)에서 발생했는지 여부

  • 운영 체제 이벤트가 간격에서 발생했는지 여부

    함수의 간격 또는 데이터 범위에 대한 데이터 값은 경과된 포괄 시간, 경과된 전용 시간, 응용 프로그램 포괄 시간응용 프로그램 전용 시간으로 지정됩니다.

  • 함수의 모든 간격은 경과된 포괄 시간 데이터 값에 추가됩니다.

  • 간격이 자식 함수가 아닌 함수의 코드에서 발생한 경우에는 함수의 경과된 전용 시간 데이터 값에 추가됩니다.

  • 운영 체제 이벤트가 간격에서 발생하지 않은 경우 간격은 응용 프로그램 포괄 시간 데이터 값에 추가됩니다.

  • 운영 체제 이벤트가 간격에서 발생하지 않고 간격이 함수 코드의 직접 실행에서 발생한 경우(즉, 자식 함수에서 발생하지 않음) 간격은 응용 프로그램 전용 시간 데이터 값에 추가됩니다.

    프로파일링 도구 보고서에는 프로파일링 세션 자체와 해당 세션의 프로세스, 스레드 및 이진 파일에 있는 함수 값의 합계가 집계됩니다.

경과된 포괄 시간 값

특정 함수와 해당 자식 함수를 실행하는 데 걸린 총 시간입니다.

경과된 포괄 시간 값에는 함수 코드를 직접 실행하는 데 걸린 간격과 대상 함수의 자식 함수를 실행하는 데 걸린 간격이 포함됩니다. 함수 또는 해당 함수가 운영 체제를 기다리는 데 걸린 간격도 경과된 포괄 시간 값에 포함됩니다.

경과된 전용 시간 값

자식 함수에서 소요된 시간을 제외하고, 특정 함수를 실행하는 데 걸린 시간입니다.

경과된 전용 시간 값에는 운영 체제 이벤트가 해당 간격으로 발생했는지 여부와 관계없이 함수 코드를 직접 실행하는 데 걸린 간격이 포함됩니다. 대상 함수에 의해 호출된 자식 함수에서 소요된 모든 간격은 경과된 전용 시간 값에 포함되지 않습니다.

응용 프로그램 포괄 시간 값

운영 체제 이벤트에서 소요된 시간을 제외하고, 특정 함수 및 해당 자식 함수를 실행하는 데 걸린 시간입니다.

응용 프로그램 포괄 시간 값에는 운영 체제 시스템 이벤트를 포함하는 간격은 포함되지 않으며, 간격이 함수 코드를 직접 실행하는 데 소요되었든 대상 함수의 자식 함수에서 소요되었든 관계없이 함수를 실행하는 데 걸린 그 밖의 모든 간격이 포함됩니다.

응용 프로그램 전용 시간 값

자식 함수에서 소요된 시간과 운영 체제 이벤트에서 소요된 시간을 제외하고, 특정 함수를 실행하는 데 걸린 시간입니다.

응용 프로그램 전용 시간 값에는 운영 체제 이벤트를 포함하는 간격이나 함수에 의해 호출된 함수를 실행하는 데 걸린 간격은 포함되지 않으며, 함수 코드를 직접 실행하는 데 걸린 간격과 운영 체제 이벤트를 포함하지 않은 간격만 포함됩니다.

경과된 포괄 시간 백분율

함수, 모듈, 스레드 또는 프로세스의 경과된 포괄 시간 값인 프로파일링 세션의 총 경과된 포괄 시간 값의 백분율입니다.

100 * 함수의 경과된 포괄 시간\/세션의 경과된 포괄 시간

경과된 전용 시간 백분율

함수, 모듈, 스레드 또는 프로세스의 경과된 전용 시간 값인 프로파일링 세션의 총 경과된 포괄 시간 값의 백분율입니다.

100 * 함수의 경과된 전용 시간\/세션의 경과된 포괄 시간

응용 프로그램 포괄 시간 백분율

함수, 모듈, 스레드 또는 프로세스의 응용 프로그램 포괄 시간 값인 프로파일링 세션의 총 응용 프로그램 포괄 시간 값의 백분율입니다.

100 * 함수의 응용 프로그램 포괄 시간\/세션의 응용 프로그램 포괄 시간

응용 프로그램 전용 시간 백분율

함수, 모듈, 스레드 또는 프로세스의 응용 프로그램 전용 시간 간격인 프로파일링 세션의 총 응용 프로그램 포괄 시간 값의 백분율입니다.

100 * 함수의 응용 프로그램 전용 시간\/세션의 응용 프로그램 포괄 시간

참고 항목

프로파일링 도구 데이터 분석
방법: 수집 방법 선택