Dela via


ICorProfilerCallback4::ReJITCompilationStarted, metod

Meddelar profileraren att JIT-kompilatorn (just-in-time) har börjat kompilera om en funktion.

Syntax

HRESULT ReJITCompilationStarted(
    [in] FunctionID functionId,  
    [in] ReJITID    rejitId,  
    [in] BOOL       fIsSafeToBlock);  

Parametrar

functionId
[in] ID:t för funktionen som JIT-kompilatorn har börjat kompilera om.

rejitId
[in] Omkompilerings-ID för den nya versionen av funktionen.

fIsSafeToBlock
[in] true för att ange att blockering kan leda till att körningen väntar på att den anropande tråden ska returneras från det här återanropet. false för att ange att blockering inte påverkar körningens funktion. Värdet true för skadar inte körningen, men kan påverka profileringens resultat.

Kommentarer

Det går att ta emot fler än ett par ReJITCompilationStartedoch ReJITCompilationFinished-metodanrop för varje funktion på grund av hur körningen hanterar klasskonstruktorer. Till exempel börjar körningen kompilera om metod A, men klasskonstruktorn för klass B måste köras. Därför kompiler körningen om konstruktorn för klass B och kör den. När konstruktorn körs gör den ett anrop till metod A, vilket gör att metod A kompileras om igen. I det här scenariot stoppas den första omkompileringen av metod A. Båda försöken att kompilera om metod A rapporteras dock med JIT-omkompileringshändelser.

Profilerare måste ha stöd för sekvensen av återanrop till JIT-omkompilering i fall där två trådar samtidigt gör återanrop. Till exempel thread A calls ReJITCompilationStarted; however, before thread A calls ReJITCompilationFinished, thread B calls ICorProfilerCallback::ExceptionSearchFunctionEnter with the function ID from the ReJITCompilationStarted callback for thread A. Det kan verka som om funktions-ID:t ännu inte ska vara giltigt eftersom ett anrop till ReJITCompilationFinished ännu inte har tagits emot av profileraren. Men i det här fallet är funktions-ID:t giltigt.

Krav

Plattformar: Se Systemkrav.

Huvudet: CorProf.idl, CorProf.h

Bibliotek: CorGuids.lib

.NET Framework versioner: Tillgänglig sedan 4.5

Se även