Suplemento de desempenho

Suplemento de desempenho pode ser melhorado por meio de carregamento de domínio neutro para o contrato de pipeline. A ativação pode ser melhorada por meio da geração de imagens nativas 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 significativamente aperfeiçoado se o assembly que contém o contrato for carregado como domínio neutro.

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

Evitar o compilador JIT melhora a ativação

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

  • Dar nomes fortes de módulos (assemblies) do pipeline e instale-os no cache global de assemblies.

  • Use o NGen (Native Image Generator) para criar imagens nativas para assemblies de pipeline.

  • Certifique-se de que o assembly que contém o contrato é carregado como domínio neutro, conforme descrito na seção anterior.

    Observação

    Esse ponto é extremamente importante.Se o contrato não for carregado como domínio neutro, nenhum dos componentes adicionar no lado pode usar imagens nativas.

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

    Observação

    Essa melhoria de desempenho não será detectável quando executando sob o depurador, porque o processo de hospedagem (vshost.exe) não está definido para o compartilhamento de assembly.Você pode desativar o processo de hospedagem, mas isso não é recomendado.Não deve ser medido o desempenho quando executando sob o depurador.

Consulte também

Referência

LoaderOptimizationAttribute

LoaderOptimization

NGen (Native Image Generator)

Conceitos

Domínios de Aplicativos e Assemblies