Método ICorProfilerCallback::JITCompilationStarted
Notifica o criador de perfil que foi iniciado o compilador (JIT) just-in-time compilar uma função.
HRESULT JITCompilationStarted(
[in] FunctionID functionId,
[in] BOOL fIsSafeToBlock);
Parâmetros
functionId
[in] A ID da função para os quais a compilação está iniciando.fIsSafeToBlock
[in] Um valor que indica para o criador de perfil se bloqueio afetará a operação do tempo de execução. O valor é true Se o bloqueio pode fazer com que o tempo de execução Aguarde até que o thread de chamada retornar de retorno de chamada; caso contrário, false.Embora um valor de true não danificará o tempo de execução, ele pode inclinar os resultados de criação de perfil.
Comentários
É possível receber mais de um emparelhar de JITCompilationStarted e ICorProfilerCallback::JITCompilationFinished chama para cada função por causa da maneira como o tempo de execução alças construtores de classe. Por exemplo, o tempo de execução inicia um método de compilar JIT, mas o construtor da classe para a classe que B precisa ser executado. Portanto, o tempo de execução JIT compila o construtor para a classe B e o executa. Enquanto o construtor é executado, ele faz uma telefonar ao método A, que faz com que o método A ser compilado em JIT novamente. Nesse cenário, a primeira compilação JIT do método A será interrompida. No entanto, ambas as tentativas de método de compilar JIT A são reportadas com eventos de compilar JIT. Se for o criador de perfil para substituir o código Microsoft intermediate linguagem (MSIL) para um método chamando o ICorProfilerInfo::SetILFunctionBody método, ele deve fazê-lo para os dois JITCompilationStarted eventos, mas pode usar o mesmo bloco MSIL para ambos.
Geradores de perfis devem oferecer suporte a sequência de retornos de chamada JIT em casos onde dois segmentos estão fazendo simultaneamente retornos de chamada. Por exemplo, um thread chama JITCompilationStarted. No entanto, antes de thread A chama JITCompilationFinished, B chamadas do thread ICorProfilerCallback::ExceptionSearchFunctionEnter com a ID de função do thread do JITCompilationStarted retorno de chamada. Pode aparecer que a ID de função ainda não deve ser válido porque uma telefonar para JITCompilationFinished não tinha ainda sido recebido pelo criador de perfil. No entanto, caso como esse, a ID de função é válida.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0