Método de ICorProfilerCallback::JITCachedFunctionSearchStarted
Notifica o criador de perfil que uma pesquisa foi iniciado por uma função que foi compilada anteriormente usando o Native Image Generator (NGen. exe).
HRESULT JITCachedFunctionSearchStarted(
[in] FunctionID functionId,
[out] BOOL *pbUseCachedFunction);
Parâmetros
functionId
[in] A identificação da função para o qual a pesquisa é realizada.pbUseCachedFunction
[out] true se o mecanismo de execução deve usar a versão em cache de uma função (se disponível); Caso contrário, false. Se o valor for false, a execução do mecanismo JIT compila a função em vez de usar uma versão que não é compilado em JIT.
Comentários
No.NET Framework versão 2.0, o JITCachedFunctionSearchStarted e O método de ICorProfilerCallback::JITCachedFunctionSearchFinished retornos de chamada não serão feitos para todas as funções de imagens do NGen regulares. Somente as imagens NGen otimizadas para um perfil irá gerar retornos de chamada para todas as funções na imagem. Entretanto, devido à sobrecarga adicional, um gerador de perfil deve solicitar as imagens NGen otimizado do profiler somente se ela pretende usar esses retornos de chamada para forçar uma função a ser compilado just-in-time (JIT). Caso contrário, o profiler deve usar uma estratégia de lenta para reunir informações de função.
Geradores de perfis devem oferecer suporte a casos onde vários segmentos de um aplicativo perfilado estão chamando o mesmo método simultaneamente. Por exemplo, o thread a chama JITCachedFunctionSearchStarted e o profiler responde por configuração pbUseCachedFunctioncomo FALSE para forçar a compilação JIT. Thread chama de um, em seguida, ICorProfilerCallback::JITCompilationStarted e ICorProfilerCallback::JITCompilationFinished.
Agora b chamadas de segmento JITCachedFunctionSearchStarted para a mesma função. Mesmo que o profiler declarou sua intenção de compilação JIT a função, o profiler recebe o retorno de chamada de segundo, porque o thread b envia o retorno de chamada antes que o profiler respondeu a chamada do thread para JITCachedFunctionSearchStarted. A ordem na qual os threads de fazer chamadas depende de como os threads são agendados.
Quando o profiler recebe retornos de chamada duplicados, ele deve definir o valor referenciado pelo pbUseCachedFunction para o mesmo valor para todos os retornos de chamada duplicados. Isto é, quando JITCachedFunctionSearchStarted é chamado várias vezes com o mesmo functionId valor, o profiler deve responder a mesma cada vez.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: Corprof. idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0