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 ReJITCompilationStarted
och 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