StartProfile
StartProfile 함수는 지정된 프로파일링 수준에 대한 카운터를 1(on)로 설정합니다.
PROFILE_COMMAND_STATUS PROFILERAPI StartProfile(
PROFILE_CONTROL_LEVEL Level,
unsigned int dwId);
매개 변수
Level
성능 데이터 수집이 적용될 수 있는 프로필 수준을 나타냅니다.다음 PROFILE_CONTROL_LEVEL 열거자를 사용하여 성능 데이터 수집이 적용될 수 있는 세 가지 수준 중 하나를 나타낼 수 있습니다.
열거자 |
설명 |
---|---|
PROFILE_GLOBALLEVEL |
전역 수준 설정은 프로파일링 실행의 모든 프로세스와 스레드에 적용됩니다. |
PROFILE_PROCESSLEVEL |
프로세스 수준 설정은 지정된 프로세스의 일부인 모든 스레드에 적용됩니다. |
PROFILE_THREADLEVEL |
스레드 프로파일링 수준 설정은 지정된 스레드에 적용됩니다. |
dwId
시스템에 의해 생성된 프로세스 또는 스레드 식별자입니다.
속성 값/반환 값
이 함수는 PROFILE_COMMAND_STATUS 열거형을 사용하여 성공 또는 실패를 나타냅니다.반환 값은 다음 중 하나일 수 있습니다.
열거자 |
설명 |
---|---|
PROFILE_ERROR_ID_NOEXIST |
프로파일링 요소 ID가 없습니다. |
PROFILE_ERROR_LEVEL_NOEXIST |
지정한 프로파일링 수준이 없습니다. |
PROFILE_ERROR_MODE_NEVER |
함수가 호출될 때 프로파일링 모드가 NEVER로 설정되어 있었습니다. |
PROFILE_ERROR_NOT_YET_IMPLEMENTED |
프로파일링 함수 호출, 프로파일링 수준 또는 호출과 수준의 조합이 아직 구현되지 않았습니다. |
PROFILE_OK |
호출을 완료했습니다. |
설명
StartProfile 및 StopProfile은 프로파일링 수준의 Start/Stop 상태를 제어합니다.시작/중지의 기본값은 1입니다.초기 값은 레지스트리에서 변경할 수 있습니다.StartProfile을 호출할 때마다 Start/Stop이 1로 설정되고 StopProfile이 호출될 때마다 0으로 설정됩니다.
Start/Stop이 0보다 큰 경우, 해당 수준의 Start/Stop 상태는 ON입니다.0보다 작거나 같은 경우, Start/Stop 상태는 OFF입니다.
Start/Stop 상태와 Suspend/Resume 상태가 모두 ON인 경우, 해당 수준의 프로파일링 상태는 ON입니다.프로파일링될 스레드의 경우, 해당 스레드에 대한 전역, 프로세스, 스레드 수준 상태는 ON이어야 합니다.
해당 .NET Framework 항목
Microsoft.VisualStudio.Profiler.dll
함수 정보
헤더: VSPerf.h에 선언됨
가져오기 라이브러리: VSPerf.lib
예제
다음 예제에서는 StartProfile 함수 호출의 예를 보여 줍니다.
void ExerciseStartProfile()
{
// StartProfile and StopProfile control the
// Start/Stop state for the profiling level.
// The default initial value of Start/Stop is 1.
// The initial value can be changed in the registry.
// Each call to StartProfile sets Start/Stop to 1;
// each call to StopProfile sets it to 0.
// Variables used to print output.
HRESULT hResult;
TCHAR tchBuffer[256];
// Declare enumeration to hold return value of
// the call to StartProfile.
PROFILE_COMMAND_STATUS profileResult;
profileResult = StartProfile(
PROFILE_THREADLEVEL,
PROFILE_CURRENTID);
// Format and print result.
LPCTSTR pszFormat = TEXT("%s %d.\0");
TCHAR* pszTxt = TEXT("StartProfile returned");
hResult = StringCchPrintf(tchBuffer, 256, pszFormat,
pszTxt, profileResult);
#ifdef DEBUG
OutputDebugString(tchBuffer);
#endif
}