ICorProfilerInfo4::RequestReJIT metódus

A megadott függvények összes példányának JIT-újrafordítását kéri.

Szintaxis

HRESULT RequestReJIT (  
   [in] ULONG    cFunctions,  
   [in, size_is(cFunctions)]  ModuleID    moduleIds[],  
   [in, size_is(cFunctions)]  mdMethodDef methodIds[]);  

Paraméterek

cFunctions
[in] Az újrafordíteni kívánt függvények száma.

moduleIds
[in] moduleId A (module, ) párok azon részét adja meg, methodDefamely azonosítja az újrakomponálandó függvényeket.

methodIds
[in] methodId A (module, ) párok azon részét adja meg, methodDefamely azonosítja az újrakomponálandó függvényeket.

Visszatérési érték

Ez a metódus a következő konkrét HRESULT-okat, valamint a metódushibát jelző HRESULT-hibákat adja vissza.

HRESULT Description
S_OK Megkísérelték megjelölni a JIT-újrafordítás összes metódusát. A profilkészítőnek implementálnia kell az ICorProfilerCallback4::ReJITError metódust annak megállapításához, hogy mely metódusok lettek sikeresen megjelölve a JIT újrafordításához.
CORPROF_E_CALLBACK4_REQUIRED A profilkészítőnek implementálnia kell az ICorProfilerCallback4 felületet ahhoz, hogy a hívás támogatott legyen.
CORPROF_E_REJIT_NOT_ENABLED A JIT-újrafordítás nincs engedélyezve. Az inicializálás során engedélyeznie kell a JIT-újrafordítást az ICorProfilerInfo::SetEventMask metódussal a COR_PRF_ENABLE_REJIT jelző beállításához.
E_INVALIDARG cFunctionsvagy 0 vagy moduleIdsmethodIds .NULL
E_OUTOFMEMORY A CLR nem tudta befejezni a kérést, mert elfogyt a memória.

Megjegyzések

Hívás RequestReJIT , hogy a futtatókörnyezet újrafordítást végezhessen egy megadott függvénykészleten. A kódprofilozó ezután az ICorProfilerFunctionControl felülettel módosíthatja a függvények újrafordításakor létrehozott kódot. Ez nincs hatással a függvények jelenleg történő végrehajtására, csak a jövőbeli függvényhívásokra. Ha a megadott függvények bármelyikét korábban jiT-újrafordították, az újrafordítás kérése egyenértékű a függvény visszaállításával és újrafordításával. A reverzibilitás megőrzése érdekében, amikor a JIT-fordító lefordítja egy függvény eredeti verzióját, csak a híváshívások eredeti verzióit veszi figyelembe a döntések felvázolásához. Amikor a JIT-fordító újrafordít egy függvényt, a hívásainak aktuális (újrafordított vagy eredeti) verzióit veszi figyelembe a fordításhoz.

A profilkészítők általában a felhasználói bevitelre válaszolva kérik RequestReJIT , hogy a profilkészítő egy vagy több módszert hozzon létre. RequestReJIT általában felfüggeszti a futtatókörnyezetet, hogy elvégezze a munkáját, és esetleg elindíthat egy szemétgyűjtést. Ezért a profilozónak egy korábban létrehozott szálról kell hívást kezdeményeznie RequestReJIT , nem pedig egy CLR által létrehozott szálról, amely jelenleg egy profiler visszahívását hajtja végre.

Követelmények

Platformok: Lásd: Rendszerkövetelmények.

Fejléc: CorProf.idl, CorProf.h

Könyvtár: CorGuids.lib

.NET-keretrendszer verziók: 4.5 óta érhető el

Lásd még