Compartilhar via


Método ICorProfilerCallback::JITCachedFunctionSearchStarted

Notifica o criador de perfil de que uma pesquisa foi iniciada para uma função que foi compilada anteriormente usando o NGen.exe (gerador de imagem nativa).

Sintaxe

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

Parâmetros

functionId
[in] A ID da função para a qual a pesquisa está sendo executada.

pbUseCachedFunction
[out] true se o mecanismo de execução tiver que usar a versão armazenada em cache de uma função (se disponível); caso contrário false. Se o valor for false, o mecanismo de execução JIT compila a função em vez de usar uma versão que não seja compilada por JIT.

Comentários

No .NET Framework versão 2.0, os retornos de chamada JITCachedFunctionSearchStarted e Método ICorProfilerCallback::JITCachedFunctionSearchFinished não serão feitos para todas as funções em imagens NGen regulares. Somente imagens NGen otimizadas para um perfil gerarão retornos de chamada para todas as funções na imagem. No entanto, devido à sobrecarga adicional, um criador de perfil deve solicitar imagens NGen otimizadas para criador de perfil somente se pretender usar esses retornos de chamada para forçar uma função a ser compilada just-in-time (JIT). Caso contrário, o criador de perfil deve usar uma estratégia lenta para coletar informações de função.

Os profilers devem dar suporte a casos em que vários threads de um aplicativo com perfil estão chamando o mesmo método simultaneamente. Por exemplo, as chamadas JITCachedFunctionSearchStarted de thread A e o criador de perfil respondem definindo pbUseCachedFunction como FALSE para forçar a compilação JIT. Em seguida, o Thread A chama ICorProfilerCallback::JITCompilationStarted e ICorProfilerCallback::JITCompilationFinished.

Agora, o thread B chama JITCachedFunctionSearchStarted para a mesma função. Embora o criador de perfil tenha declarado sua intenção de compilar a função por JIT, o criador de perfil recebe o segundo retorno de chamada porque o thread B envia o retorno de chamada antes que o criador de perfil responda à chamada do thread A para JITCachedFunctionSearchStarted. A ordem na qual os threads fazem chamadas depende de como os threads são agendados.

Quando o criador de perfil recebe retornos de chamada duplicados, ele deve definir o valor referenciado por pbUseCachedFunction para o mesmo valor para todos os retornos de chamada duplicados. Ou seja, quando JITCachedFunctionSearchStarted é chamado várias vezes com o mesmo valor functionId, o criador de perfil deve responder o mesmo sempre.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: disponíveis desde 2.0

Confira também