Compartilhar via


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

Consulte também

Referência

Interface ICorProfilerCallback

Método ICorProfilerCallback::JITCompilationFinished