Compartir vía


ICorProfilerCallback::JITCachedFunctionSearchStarted (Método)

Notifica al generador de perfiles que se ha iniciado una búsqueda para una función que se compiló anteriormente mediante el generador de imágenes nativas (NGen.exe).

Sintaxis

HRESULT JITCachedFunctionSearchStarted(  
    [in]  FunctionID functionId,  
    [out] BOOL *pbUseCachedFunction);  

Parámetros

functionId
[in] Identificador de la función para la que se realiza la búsqueda.

pbUseCachedFunction
[out] true si el motor de ejecución debe usar la versión almacenada en caché de una función (si está disponible); de lo contrario, false. Si el valor es false, el motor de ejecución JIT compila la función en lugar de usar una versión que no está compilada con JIT.

Comentarios

En .NET Framework, versión 2.0, las devoluciones de llamada JITCachedFunctionSearchStarted y ICorProfilerCallback::JITCachedFunctionSearchFinished (método) no se realizarán para todas las funciones en imágenes de NGen normales. Solo las imágenes de NGen optimizadas para un perfil generarán devoluciones de llamada para todas las funciones de la imagen. Sin embargo, debido a la sobrecarga adicional, un generador de perfiles debe solicitar imágenes NGen optimizadas para el generador de perfiles solo si pretende usar estas devoluciones de llamada para forzar que una función se compile Just-In-Time (JIT). De lo contrario, el generador de perfiles debe usar una estrategia diferida para recopilar información de la función.

Los generadores de perfiles deben admitir casos en los que varios subprocesos de una aplicación con perfiles llamen al mismo método simultáneamente. Por ejemplo, el subproceso A llama a JITCachedFunctionSearchStarted y el generador de perfiles responde estableciendo pbUseCachedFunction en FALSE para forzar la compilación JIT. El subproceso A llama a ICorProfilerCallback::JITCompilationStarted e ICorProfilerCallback::JITCompilationFinished.

Ahora, el subproceso B llama a JITCachedFunctionSearchStarted para la misma función. Aunque el generador de perfiles ha declarado su intención de compilar la función en JIT, el generador de perfiles recibe la segunda devolución de llamada porque el subproceso B envía la devolución de llamada antes de que el generador de perfiles haya respondido a la llamada del subproceso A a JITCachedFunctionSearchStarted. El orden en que los subprocesos realizan llamadas depende de cómo se programan los subprocesos.

Cuando el generador de perfiles recibe devoluciones de llamada duplicadas, debe establecer el valor al que hace referencia pbUseCachedFunction en el mismo valor para todas las devoluciones de llamada duplicadas. Es decir, cuando e llama varias veces a JITCachedFunctionSearchStarted con el mismo valor functionId, el generador de perfiles debe responder igual cada vez.

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 2.0

Consulte también