Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memberi tahu profiler bahwa kompilator just-in-time (JIT) telah mulai mengompilasi fungsi.
Sintaks
HRESULT JITCompilationStarted(
[in] FunctionID functionId,
[in] BOOL fIsSafeToBlock);
Parameter
functionId [di] ID fungsi yang kompilasinya dimulai.
fIsSafeToBlock [in] Nilai yang menunjukkan kepada profiler apakah pemblokiran akan memengaruhi pengoperasian runtime. Nilainya adalah true jika pemblokiran dapat menyebabkan runtime menunggu utas panggilan kembali dari panggilan balik ini; jika tidak, nilainya adalah false.
Meskipun nilai true tidak akan membahayakan runtime, itu dapat mengubah hasil pembuatan profil.
Keterangan
Dimungkinkan untuk menerima lebih dari satu pasang panggilan JITCompilationStarted dan ICorProfilerCallback::JITCompilationFinished untuk setiap fungsi karena cara runtime bahasa umum menangani konstruktor kelas. Misalnya, runtime bahasa umum mulai mengompilasi JIT metode A, tetapi konstruktor kelas untuk kelas B perlu dijalankan. Oleh karena itu, runtime JIT-mengompilasi konstruktor untuk kelas B dan menjalankannya. Saat konstruktor berjalan, konstruktor melakukan panggilan ke metode A, yang menyebabkan metode A dikompilasi lagi oleh JIT. Dalam skenario ini, kompilasi JIT pertama dari metode A dihentikan. Tetapi, kedua upaya untuk mengompilasi JIT metode A dilaporkan dengan peristiwa kompilasi JIT. Jika profiler akan mengganti kode bahasa perantara umum (CIL) untuk metode A dengan memanggil metode ICorProfilerInfo::SetILFunctionBody , ia harus melakukannya untuk kedua JITCompilationStarted peristiwa, tetapi dapat menggunakan blok CIL yang sama untuk keduanya.
Profiler harus mendukung urutan panggilan balik JIT dalam kasus di mana dua utas secara bersamaan membuat panggilan balik. Misalnya, utas A memanggil JITCompilationStarted. Tetapi, sebelum utas A memanggil JITCompilationFinished, utas B memanggil ICorProfilerCallback::ExceptionSearchFunctionEnter dengan ID fungsi dari panggilan balik JITCompilationStarted utas A. Sepertinya ID fungsi belum valid karena panggilan ke JITCompilationFinished belum diterima oleh profiler. Tetapi, dalam kasus seperti ini, ID fungsi valid.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl, CorProf.h
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari 2.0