ICorProfilerInfo4::RequestReJIT (Método)
Solicita una recompilación con JIT de todas las instancias de las funciones especificadas.
Sintaxis
HRESULT RequestReJIT (
[in] ULONG cFunctions,
[in, size_is(cFunctions)] ModuleID moduleIds[],
[in, size_is(cFunctions)] mdMethodDef methodIds[]);
Parámetros
cFunctions
[in] Número de funciones que se va a recompilar.
moduleIds
[in] Especifica la parte moduleId
de los pares (module
, methodDef
) que identifican las funciones que se van a recompilar.
methodIds
[in] Especifica la parte methodId
de los pares (module
, methodDef
) que identifican las funciones que se van a recompilar.
Valor devuelto
Este método devuelve los siguientes HRESULT específicos y los errores HRESULT que indican un error del método.
HRESULT | Descripción |
---|---|
S_OK | Se intentó marcar todos los métodos para la recompilación con JIT. Para determinar qué métodos se han marcado correctamente para volver a compilarse mediante el compilador JIT, deberá implementar el método ICorProfilerCallback4::ReJITError en el generador de perfiles. |
CORPROF_E_CALLBACK4_REQUIRED | Si se devuelve este valor, significa que debe implementar la interfaz ICorProfilerCallback4 en el generador de perfiles para que se admita esta llamada. |
CORPROF_E_REJIT_NOT_ENABLED | No se habilitó la recompilación con JIT. Deberá habilitar el proceso de nueva compilación mediante el compilador JIT durante la inicialización. Para ello, use el método ICorProfilerInfo::SetEventMask para establecer la marca COR_PRF_ENABLE_REJIT . |
E_INVALIDARG | cFunctions es 0, o moduleIds o methodIds es NULL . |
E_OUTOFMEMORY | El CLR no pudo completar la solicitud porque se quedó sin memoria. |
Comentarios
Llame a RequestReJIT
para que el tiempo de ejecución recompile un conjunto especificado de funciones. Después, podrá usarse la interfaz ICorProfilerFunctionControl mediante un generador de perfiles de código para ajustar el código que se genere cuando las funciones se vuelvan a compilar. Esto no afecta a las funciones actualmente en ejecución, solo a futuras llamadas a funciones. Si alguna de las funciones especificadas ya se había recompilado con JIT, la solicitud de recompilación equivale a revertir y recompilar la función. Para conservar la reversibilidad, cuando el compilador JIT compila la versión original de una función, solo tiene en cuenta las versiones originales de los destinatarios para las decisiones de inserción. Cuando el compilador JIT recompila una función, tiene en cuenta las versiones actuales (recompiladas u originales) de los destinatarios para la inserción.
Normalmente, un generador de perfiles llama a RequestReJIT
en respuesta a una entrada del usuario que solicita que el generador de perfiles instrumente uno o más métodos. Normalmente, RequestReJIT
suspende el tiempo de ejecución para realizar algunas de sus tareas y puede desencadenar una recolección de elementos no utilizados. Por lo tanto, el generador de perfiles debe llamar a RequestReJIT
desde un subproceso creado anteriormente y no desde un subproceso creado por el CLR que está ejecutando actualmente una devolución de llamada del generador de perfiles.
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: disponible a partir de la versión 4.5