Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È necessario Visual Studio 2010 SP1.
Specifici di Microsoft
Genera l'istruzione della profilatura leggera (LWP) lwpval per inserire un record di esempio del valore nel buffer circolare LWP attivo.
void __lwpval32(
unsigned int data2,
unsigned int data1,
unsigned int flags
);
void __lwpval64(
unsigned __int64 data2,
unsigned int data1,
unsigned int flags
);
Parametri
[in] data2
Un parametro a 32 o a 64 bit che verrà scritto nel campo Data2 di un record del buffer circolare LWP.[in] data1
Parametro a 32 bit che verrà scritto nel campo Data1 di un record del buffer circolare LWP.[in] flags
Un parametro a 32 i cui 16 bit rimanenti verranno scritti nel campo Flag di un record del buffer circolare LWP.
Valore restituito
Nessuno.
Requisiti
Intrinseco |
Architettura |
|---|---|
__lwpval32 |
LWP |
__lwpval64 |
LWP, solo X64 |
File di intestazione <intrin.h>
Note
Questi intrinseci possono essere utilizzati per registrare campioni di valori con EventID 1 nel buffer circolare della profilatura leggera. A differenza dell'istruzione lwpins, l'istruzione lwpval scrive nel buffer solo a ogni intervallo di tempo k in cui viene eseguito lwpval dove k-1 è il valore del campo EventInterval1 di LWPCB. Per ulteriori informazioni, vedere __lwpins32.
Quando viene scritto un record, viene aggiunto nel successivo slot disponibile del buffer circolare LWP attivo. Se il buffer circolare è pieno, il nuovo record sovrascrive l'ultimo record nel buffer. Quando la profilatura leggera non è abilitata o LWP è abilitato ma l'evento dell'esempio di valore programmato non è abilitato, questi intrinseci non hanno effetto sul buffer circolare.
Sia __lwpval32 che __lwpval64 scrivono il valore di data2 nel campo Data2 del record del buffer circolare (byte 23-16), data1 nel campo Data1 (byte 7-4) e flags nel campo Flag (byte 3-2). Si noti che flags deve essere costante e verrà troncato a 16 bit. L'intrinseco __lwpval32 imposta byte 23-20 del record del buffer circolare su zero.
L'istruzione lwpval fa parte della famiglia LWP di istruzioni. Le istruzioni LWP richiedono sia il supporto dell'hardware che del sistema operativo. Per determinare il supporto hardware per LWP, chiamare __cpuid intrinseco con InfoType = 0x80000001 e il bit di controllo 15 di CPUInfo[2] (ECX). Questo bit è 1 quando LWP è supportato, e 0 in caso contrario. Una volta che si sa che LWP è supportato dal processore, chiamare __cpuid intrinseco con InfoType = 0x8000001C e bit di controllo 0 di CPUInfo[0](EAX). Questo bit è 1 se il sistema operativo supporta anche LWP, in caso contrario è 0. Se il sistema operativo supporta LWP, il bit di controllo 1 di CPUInfo [0] (EAX), che sarà 1 se è disponibile l'istruzione LWPVAL. Questo test __cpuid restituisce informazioni aggiuntive sull'implementazione LWP. Vedere __llwpcb e "Lightweight Profiling Specification" di AMD (numero pubblicazione 43724) per ulteriori informazioni.
Per un esempio, vedere __llwpcb.
Vedere anche
Altre risorse
Oggetti intrinseci LWP aggiunti per Visual Studio 2010 SP1
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
|---|---|---|
|
Marzo 2011 |
È stato aggiunto questo contenuto. |
Modifica di funzionalità in SP1. |