Metode ICorProfilerCallback::JITCachedFunctionSearchStarted
Memberi tahu profiler bahwa pencarian telah dimulai untuk fungsi yang dikompilasi sebelumnya menggunakan Generator Gambar Asli (NGen.exe).
Sintaks
HRESULT JITCachedFunctionSearchStarted(
[in] FunctionID functionId,
[out] BOOL *pbUseCachedFunction);
Parameter
functionId
[in] ID fungsi tempat pencarian dilakukan.
pbUseCachedFunction
[out] true
jika mesin eksekusi harus menggunakan versi fungsi yang di-cache (jika tersedia); jika tidak false
. Jika nilainya adalah false
, mesin eksekusi JIT-mengompilasi fungsi alih-alih menggunakan versi yang tidak dikompilasi JIT.
Keterangan
Dalam .NET Framework versi 2.0, JITCachedFunctionSearchStarted
panggilan balik Metode ICorProfilerCallback::JITCachedFunctionSearchFinished Method tidak akan dibuat untuk semua fungsi dalam gambar NGen reguler. Hanya gambar NGen yang dioptimalkan untuk profil yang akan menghasilkan panggilan balik untuk semua fungsi dalam gambar. Namun, karena overhead tambahan, profiler harus meminta gambar NGen yang dioptimalkan profiler hanya jika ingin menggunakan panggilan balik ini untuk memaksa fungsi dikompilasi just-in-time (JIT). Jika tidak, profiler harus menggunakan strategi malas untuk mengumpulkan informasi fungsi.
Profiler harus mendukung kasus di mana beberapa utas aplikasi yang diprofilkan memanggil metode yang sama secara bersamaan. Misalnya, utas A memanggil JITCachedFunctionSearchStarted
dan profiler merespons dengan mengatur pbUseCachedFunctionke FALSE untuk memaksa kompilasi JIT. Utas A kemudian memanggil ICorProfilerCallback::JITCompilationStarted dan ICorProfilerCallback::JITCompilationFinished.
Sekarang utas B memanggil JITCachedFunctionSearchStarted
untuk fungsi yang sama. Meskipun profiler telah menyatakan niatnya untuk mengompilasi JIT fungsi, profiler menerima panggilan balik kedua karena utas B mengirim panggilan balik sebelum profiler telah menanggapi panggilan utas A ke JITCachedFunctionSearchStarted
. Urutan di mana utas melakukan panggilan tergantung pada bagaimana utas dijadwalkan.
Ketika profiler menerima panggilan balik duplikat, profiler harus mengatur nilai yang dirujuk oleh pbUseCachedFunction
ke nilai yang sama untuk semua panggilan balik duplikat. Artinya, ketika JITCachedFunctionSearchStarted
dipanggil beberapa kali dengan nilai functionId
yang sama, profiler harus merespons yang sama setiap kali.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl, CorProf.h
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari 2.0