Bagikan melalui


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

Lihat juga