Bagikan melalui


Metode ICorProfilerCallback4::ReJITCompilationStarted

Memberi tahu profiler bahwa pengompilasi just-in-time (JIT) telah mulai mengompilasi ulang fungsi.

Sintaks

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

Parameter

functionId
[in] ID fungsi yang telah mulai dikompilasi ulang oleh pengompilasi JIT.

rejitId
[in] ID kompilasi ulang dari fungsi versi baru.

fIsSafeToBlock
[in] true untuk menunjukkan bahwa pemblokiran dapat menyebabkan runtime menunggu utas panggilan kembali dari panggilan balik ini; false untuk menunjukkan bahwa pemblokiran tidak akan memengaruhi operasi runtime. Nilai true tidak membahayakan runtime, tetapi dapat memengaruhi hasil pembuatan profil.

Keterangan

Dimungkinkan untuk menerima lebih dari satu pasang metode panggilan ReJITCompilationStarted dan ReJITCompilationFinished untuk setiap fungsi karena cara runtime menangani konstruktor kelas. Misalnya, runtime mulai mengompilasi ulang metode A, tetapi konstruktor kelas untuk kelas B perlu dijalankan. Oleh karena itu, runtime mengompilasi ulang konstruktor untuk kelas B dan menjalankannya. Sementara konstruktor berjalan, itu membuat panggilan ke metode A, yang menyebabkan metode A dikompilasi ulang lagi. Dalam skenario ini, kompilasi ulang pertama pada metode A dihentikan. Namun, kedua upaya untuk mengompilasi ulang metode A dilaporkan dengan peristiwa kompilasi ulang JIT.

Profiler harus mendukung urutan panggilan balik kompilasi ulang JIT dalam kasus di mana dua utas membuat panggilan balik secara bersamaan. Misalnya, utas A memanggil ReJITCompilationStarted; namun, sebelum utas A memanggil ReJITCompilationFinished, utas B memanggil ICorProfilerCallback::ExceptionSearchFunctionEnter dengan ID fungsi dari panggilan balik ReJITCompilationStarted untuk utas A. Mungkin muncul bahwa ID fungsi belum valid karena panggilan ke ReJITCompilationFinished belum diterima oleh profiler. Namun, dalam hal ini, ID fungsi valid.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorProf.idl, CorProf.h

Pustaka: CorGuids.lib

Versi .NET Framework: Tersedia mulai dari 4.5

Lihat juga