Share via


Rendimiento de los complementos

El rendimiento de los complementos puede mejorarse utilizando la carga neutral respecto al dominio en el contrato de la canalización. La activación se puede mejorar generando imágenes nativas de los segmentos de canalización.

La carga neutral respecto al dominio mejora las llamadas entre dominios

Cuando un complemento se carga en un dominio de aplicación independiente, la canalización calcula las referencias de las llamadas que se producen entre el host y el complemento a través del límite del dominio de aplicación. El rendimiento de las llamadas que se realizan entre dominios mejora significativamente si el ensamblado que contiene el contrato se carga como un ensamblado neutral respecto al dominio.

El ensamblado debe tener un nombre seguro e instalarse en la memoria caché global de ensamblados; además, debe tener el atributo LoaderOptimizationAttribute con el marcador LoaderOptimization.MultiDomainHost o LoaderOptimization.MultiDomain.

Evitar el compilador JIT mejora la activación

El compilador Just-In-Time (JIT) aumenta considerablemente la sobrecarga que supone para el rendimiento la activación de complementos, sobre todo cuando el complemento se activa en un dominio de aplicación independiente. Para evitar utilizar el compilador JIT, siga estas instrucciones:

  • Proporcione nombres seguros a los ensamblados de la canalización e instálelos en la memoria caché global de ensamblados.

  • Utilice Ngen.exe (Generador de imágenes nativas) para crear imágenes nativas de los ensamblados de la canalización.

  • Asegúrese de que el ensamblado que contiene el contrato se carga como un ensamblado neutral respecto al dominio, tal y como se describió en la sección anterior.

    NotaNota

    Este punto es sumamente importante.Si el contrato no se carga como un ensamblado neutral respecto al dominio, ninguno de los componentes del complemento podrá usar imágenes nativas.

  • Aplique el atributo LoaderOptimizationAttribute al ensamblado de host con el marcador MultiDomainHost o MultiDomain para permitir que las imágenes nativas de los ensamblados de .NET Framework puedan compartirse entre los dominios de aplicación.

    NotaNota

    Esta mejora de rendimiento será inapreciable cuando la ejecución se realice bajo el depurador, ya que el proceso de hospedaje (vshost.exe) no está preparado para el uso compartido de ensamblados.Puede deshabilitar el proceso de hospedaje, aunque no es recomendable.El rendimiento no debería medirse cuando la ejecución se realiza bajo el depurador.

Vea también

Referencia

LoaderOptimizationAttribute

LoaderOptimization

Ngen.exe (Generador de imágenes nativas)

Conceptos

Dominios de aplicación y ensamblados