Share via


Desempenho de suplemento

Suplemento do desempenho pode ser melhorado usando carregamento de domínio neutro para o contrato de pipeline.A ativação pode ser melhorada gerando nativo imagens para segmentos de pipeline.

Carregamento de domínio neutro melhora chamadas entre domínios

Quando um suplemento é carregado em um domínio de aplicativo separado, chamadas entre o host e o suplemento são empacotadas em limites de domínio do aplicativo pelo pipeline.O desempenho dessas chamadas entre domínios é uma melhora significativa se o assembly que contém o contrato for carregado sistema autônomo domínio-neutral.

O assembly deve ter um nome forte e deve ser instalado no cache de assembly global, e deve ter o LoaderOptimizationAttribute com um a LoaderOptimization.MultiDomainHost sinalizar ou o LoaderOptimization.MultiDomain sinalizar.

Evitar o compilador JIT melhora ativação

O compilador (JIT) just-in-time substancialmente adiciona a sobrecarga de desempenho da ativação do suplemento, especialmente quando o suplemento é ativado em um domínio do aplicativo separado.Para evitar o uso do compilador JIT, siga estas diretrizes:

  • Forneça o pipeline nomes de assemblies de alta segurança e instale-os no cache global de assemblies.

  • Use o Nativo Gerador de Imagem (Ngen.exe) Para criar imagens nativas para assemblies do pipeline.

  • Certifique-se de que o assembly que contém o contrato é carregado sistema autônomo domínio-neutral, conforme descrito na seção anterior.

    Observação:

    Esse ponto é extremamente importante.Se o contrato não será carregado sistema autônomo domínio-neutral, nenhum do suplemento-componentes do lado podem usar imagens nativas.

  • Aplicar o LoaderOptimizationAttribute ao assembly com um host a MultiDomainHost sinalizar ou o MultiDomain sinalizar, para permitir imagens nativas da .NET Framework conjuntos de módulos podem ser compartilhados entre domínios de aplicativo.

    Observação:

    Este p melhoria enho não será podem ser detectada quando executando sob o depurador, porque o processo de hospedagem (vshost.exe) não está definido para o assembly de compartilhamento.Você pode desabilitar o processo de hospedagem, mas isso não é recomendado.Não deve ser medido desempenho quando executando sob o depurador .

Consulte também

Conceitos

Domínios de Aplicativos e Assemblies

Referência

LoaderOptimizationAttribute

LoaderOptimization

Nativo Gerador de Imagem (Ngen.exe)