__lwpins32, __lwpins64
업데이트: 2011년 3월
Visual Studio 2010 SP1이 필요합니다.
Microsoft 전용
LWP(lightweight profiling) 명령 lwpins을 생성하여 사용자 이벤트 레코드를 활성 LWP 링 버퍼에 삽입합니다.
unsigned char __lwpins32(
unsigned int data2,
unsigned int data1,
unsigned int flags
);
unsigned char __lwpins64(
unsigned __int64 data2,
unsigned int data1,
unsigned int flags
);
매개 변수
[in] data2
LWP 링 버퍼 레코드의 Data2 필드에 기록할 32 또는 64비트 매개 변수입니다.[in] data1
LWP 링 버퍼 레코드의 Data1 필드에 기록할 32비트 매개 변수입니다.[in] flags
LWP 링 버퍼 레코드의 Flags 필드에 기록될 하위 16비트의 32비트 매개 변수입니다.
반환 값
링 버퍼가 가득 찬 경우 값 1을 가진 부호 없는 문자, 그렇지 않으면 0입니다.
요구 사항
내장 |
아키텍처 |
---|---|
__llwpins32 |
LWP |
__llwpins64 |
LWP, X64 전용 |
헤더 파일 <intrin.h>
설명
이러한 intrinsics는 간단한 프로파일링 링 버퍼에서 EventId 255를 사용하여 중요한 이벤트를 기록하는 데 사용할 수 있습니다. lwpval과 달리 lwpins 명령은 실행될 때마다 버퍼에 기록됩니다. 자세한 내용은 __lwpval32를 참조하십시오.
간단한 프로파일링이 사용되면 이러한 intrinsics는 즉시 레코드를 활성 LWP 링 버퍼의 다음 사용할 수 있는 슬롯에 쓰고 0을 반환합니다. 링 버퍼가 가득 찬 경우 새 레코드는 버퍼의 마지막 레코드를 덮어쓰고 intrinsic은 1을 반환합니다. 간단한 프로파일링이 활성화되지 않으면 이러한 intrinsic은 자동으로 0을 반환합니다.
__lwpins32 및 __lwpins64는 data2의 값을 링 버퍼 레코드(바이트 23-16)의 Data2 필드에 기록하고, data1은 Data1 필드(바이트 7-4)에 기록하며 flags는 Flags 필드 (바이트 3-2)에 기록합니다. flags는 상수가 되어야 하며 16비트로 잘립니다. __lwpins32 intrinsic은 링 버퍼 레코드의 바이트 23-20을 0으로 설정합니다.
lwpins 명령은 LWP 명령군의 일부입니다. LWP 명령을 사용하려면 하드웨어 및 운영 체제 지원이 필요합니다. LWP에 대한 하드웨어 지원을 확인하려면 InfoType = 0x80000001을 사용하여 __cpuid intrinsic을 호출하고 CPUInfo[2] (ECX)의 비트 15를 확인합니다. LWP를 지원하는 경우 이 비트는 1이고, 그렇지 않으면 0입니다. LWP가 프로세서에 의해 지원된다는 것을 알게 되면 __cpuid intrinsic을 InfoType = 0x8000001C를 사용하여 호출하고 CPUInfo[0] (EAX)의 비트 0을 확인합니다. 운영 체제에서 LWP를 지원하는 경우 이 비트는 1이고, 그렇지 않으면 0입니다. 이 __cpuid 테스트는 LWP 구현에 대한 추가 정보도 반환합니다. 자세한 내용은 __llwpcb 및 AMD의 "Lightweight Profiling Specification"(발행 번호 43724)을 참조하십시오.
예제를 보려면 __llwpcb을 참조하십시오.
참고 항목
기타 리소스
Visual Studio 2010 SP1용으로 추가된 LWP 내장 함수
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2011년 3월 |
이 내용이 추가되었습니다. |
SP1 기능 변경 |