ICorProfilerInfo4::RequestReJIT, metod
Begär en JIT-omkompilering av alla instanser av de angivna funktionerna.
Syntax
HRESULT RequestReJIT (
[in] ULONG cFunctions,
[in, size_is(cFunctions)] ModuleID moduleIds[],
[in, size_is(cFunctions)] mdMethodDef methodIds[]);
Parametrar
cFunctions
[in] Antalet funktioner som ska kompileras om.
moduleIds
[in] Anger den moduleId
del av paren (module
, methodDef
) som identifierar de funktioner som ska kompileras om.
methodIds
[in] Anger den methodId
del av paren (module
, methodDef
) som identifierar de funktioner som ska kompileras om.
Returvärde
Den här metoden returnerar följande specifika HRESULT-fel samt HRESULT-fel som indikerar metodfel.
HRESULT | Description |
---|---|
S_OK | Ett försök gjordes att markera alla metoder för JIT-omkompilering. Profileraren måste implementera metoden ICorProfilerCallback4::ReJITError för att avgöra vilka metoder som har markerats för JIT-omkompilering. |
CORPROF_E_CALLBACK4_REQUIRED | Profileraren måste implementera gränssnittet ICorProfilerCallback4 för att det här anropet ska stödjas. |
CORPROF_E_REJIT_NOT_ENABLED | JIT-omkompilering har inte aktiverats. Du måste aktivera JIT-omkompilering under initieringen med hjälp av metoden ICorProfilerInfo::SetEventMask för att ange COR_PRF_ENABLE_REJIT flaggan. |
E_INVALIDARG | cFunctions är 0 eller moduleIds methodIds är NULL . |
E_OUTOFMEMORY | CLR kunde inte slutföra begäran eftersom det tog slut på minne. |
Kommentarer
Anropa RequestReJIT
för att köra om kompilera om en angiven uppsättning funktioner. En kodprofilerare kan sedan använda gränssnittet ICorProfilerFunctionControl för att justera koden som genereras när funktionerna kompileras om. Detta påverkar inte funktioner som körs för närvarande, utan endast framtida funktionsanrop. Om någon av de angivna funktionerna tidigare har JIT-kompilerats om motsvarar begäran om en omkompilering att återställa och kompilera om funktionen. När JIT-kompilatorn kompilerar den ursprungliga versionen av en funktion för att bevara reversibiliteten tar den endast hänsyn till de ursprungliga versionerna av dess anropare för att ange beslut. När JIT-kompilatorn kompilerar om en funktion tar den hänsyn till de aktuella versionerna (omkompilerade eller ursprungliga) av dess anrop för inlining.
En profilerare anropar RequestReJIT
vanligtvis som svar på användarindata och begär att profilerarinstrumentet en eller flera metoder. RequestReJIT
pausar normalt körningen för att utföra en del av sitt arbete och kan potentiellt utlösa en skräpinsamling. Profileraren bör därför anropa RequestReJIT
från en tråd som den skapade tidigare och inte från en CLR-skapad tråd som för närvarande kör ett profileraråteranrop.
Krav
Plattformar: Se Systemkrav.
Huvudet: CorProf.idl, CorProf.h
Bibliotek: CorGuids.lib
.NET Framework versioner: Tillgänglig sedan 4.5