StartProfile
업데이트: 2007년 11월
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 상태를 제어합니다. 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
}