Metodo ICorProfilerCallback4::ReJITCompilationStartedICorProfilerCallback4::ReJITCompilationStarted Method

Notifica al profiler che il compilatore di just-in-time (JIT) è stato avviato ricompilare una funzione.Notifies the profiler that the just-in-time (JIT) compiler has started to recompile a function.

SintassiSyntax

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

ParametriParameters

functionId
[in] L'ID della funzione che il compilatore JIT è stata avviata da ricompilare.[in] The ID of the function that the JIT compiler has started to recompile.

rejitId
[in] L'ID della ricompilazione della nuova versione della funzione.[in] The recompilation ID of the new version of the function.

fIsSafeToBlock
[in] true per indicare che il blocco può causare il runtime di attesa per il thread chiamante da questo callback; false per indicare che il blocco non avranno effetto l'operazione di runtime.[in] true to indicate that blocking may cause the runtime to wait for the calling thread to return from this callback; false to indicate that blocking will not affect the operation of the runtime. Il valore true non influisce sul runtime, ma possono influenzare i risultati di profilatura.A value of true does not harm the runtime, but can affect the profiling results.

NoteRemarks

È possibile ricevere più di una coppia di ReJITCompilationStarted e ReJITCompilationFinished metodo chiama per ogni funzione a causa del modo il runtime gestisce i costruttori di classe.It is possible to receive more than one pair of ReJITCompilationStarted and ReJITCompilationFinished method calls for each function because of the way the runtime handles class constructors. Ad esempio, il runtime Avvia ricompilazione di un metodo, ma il costruttore della classe per classe B deve essere eseguito.For example, the runtime starts to recompile method A, but the class constructor for class B needs to be run. Pertanto, il runtime ricompila il costruttore di classe B e lo esegue.Therefore, the runtime recompiles the constructor for class B and runs it. Durante l'esecuzione, il costruttore che effettua una chiamata al metodo che determina il metodo per la ricompilazione nuovamente.While the constructor is running, it makes a call to method A, which causes method A to be recompiled again. In questo scenario, viene interrotta la ricompilazione prima del metodo.In this scenario, the first recompilation of method A is halted. Tuttavia, entrambi tenta ricompilare metodo vengono segnalata con gli eventi di ricompilazione JIT.However, both attempts to recompile method A are reported with JIT recompilation events.

I profiler devono supportare la sequenza di callback di ricompilazione JIT nei casi in cui due thread effettuano callback simultaneamente.Profilers must support the sequence of JIT recompilation callbacks in cases where two threads are simultaneously making callbacks. Ad esempio, il thread chiama ReJITCompilationStarted; tuttavia, prima di un thread chiama ReJITCompilationFinished, thread B chiama ICorProfilerCallback:: ExceptionSearchFunctionEnter con l'ID (funzione) dal ReJITCompilationStarted callback per thread A. Potrebbe sembrare che l'ID della funzione non deve ancora essere valido perché una chiamata a ReJITCompilationFinished non ha ancora ricevuto dal profiler.For example, 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. It might appear that the function ID should not yet be valid because a call to ReJITCompilationFinished had not yet been received by the profiler. Tuttavia, in questo caso, l'ID della funzione è valido.However, in this case, the function ID is valid.

RequisitiRequirements

Piattaforme: vedere requisiti di sistema.Platforms: See System Requirements.

Intestazione: CorProf.idl, CorProf.hHeader: CorProf.idl, CorProf.h

Libreria: CorGuids. libLibrary: CorGuids.lib

Versioni di .NET framework: Disponibile dalla 4.5Available since 4.5.NET Framework Versions: Disponibile dalla 4.5Available since 4.5

Vedere ancheSee Also

Interfaccia ICorProfilerCallbackICorProfilerCallback Interface
Interfaccia ICorProfilerCallback4ICorProfilerCallback4 Interface
Metodo JITCompilationFinishedJITCompilationFinished Method
Metodo ReJITCompilationFinishedReJITCompilationFinished Method