Metode ICorProfilerInfo4::RequestReJIT
Meminta kompilasi ulang JIT dari semua instans fungsi yang ditentukan.
Sintaks
HRESULT RequestReJIT (
[in] ULONG cFunctions,
[in, size_is(cFunctions)] ModuleID moduleIds[],
[in, size_is(cFunctions)] mdMethodDef methodIds[]);
Parameter
cFunctions
[in] Jumlah fungsi yang akan dikombinasi ulang.
moduleIds
[in] Menentukan bagian moduleId
dari pasangan (module
, methodDef
) yang mengidentifikasi fungsi yang akan dikompilasi ulang.
methodIds
[in] Menentukan bagian methodId
dari pasangan (module
, methodDef
) yang mengidentifikasi fungsi yang akan dikompilasi ulang.
Tampilkan Nilai
Metode ini mengembalikan HRESULT tertentu berikut serta kesalahan HRESULT yang menunjukkan kegagalan metode.
HRESULT | Deskripsi |
---|---|
S_OK | Upaya dilakukan untuk menandai semua metode untuk kompilasi ulang JIT. Profiler harus mengimplementasikan metode ICorProfilerCallback4::ReJITError untuk menentukan metode mana yang berhasil ditandai untuk kompilasi ulang JIT. |
CORPROF_E_CALLBACK4_REQUIRED | Profiler harus mengimplementasikan antarmuka ICorProfilerCallback4 agar panggilan ini didukung. |
CORPROF_E_REJIT_NOT_ENABLED | Kompilasi ulang JIT belum diaktifkan. Anda harus mengaktifkan kompilasi ulang JIT selama inisialisasi dengan menggunakan metode ICorProfilerInfo::SetEventMask untuk mengatur bendera COR_PRF_ENABLE_REJIT . |
E_INVALIDARG | cFunctions adalah 0, atau moduleIds atau methodIds adalah NULL . |
E_OUTOFMEMORY | Runtime bahasa umum tidak dapat menyelesaikan permintaan karena kehabisan memori. |
Keterangan
Panggil RequestReJIT
agar runtime mengombinasikan ulang sekumpulan fungsi tertentu. Profiler kode kemudian dapat menggunakan antarmuka ICorProfilerFunctionControl untuk menyesuaikan kode yang dihasilkan saat fungsi dikompilasi ulang. Ini tidak memengaruhi fungsi yang sedang dijalankan, hanya pemanggilan fungsi di masa mendatang. Jika salah satu fungsi yang ditentukan sebelumnya telah dikompilasi ulang JIT, meminta kompilasi ulang sama dengan mengembalikan dan mengompilasi ulang fungsi tersebut. Untuk menjaga reversibilitas, ketika kompiler JIT mengkompilasiompilasi versi asli dari suatu fungsi, ini hanya mempertimbangkan versi asli dari panggilannya untuk keputusan sebaris. Ketika kompilator JIT mengompilasi ulang suatu fungsi, ini mempertimbangkan versi saat ini (dikompilasi ulang atau asli) dari panggilannya untuk sebaris.
Profiler biasanya memanggil RequestReJIT
sebagai respons terhadap input pengguna yang meminta instrumen profiler satu atau beberapa metode. RequestReJIT
biasanya menangguhkan runtime bahasa umum untuk melakukan beberapa pekerjaannya, dan berpotensi memicu pengumpulan sampah. Dengan demikian, profiler harus memanggil RequestReJIT
dari utas yang sebelumnya dibuat, dan bukan dari utas yang dibuat runtime bahasa umum yang saat ini menjalankan panggilan balik profiler.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl, CorProf.h
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari 4.5