Share via


Performances des compléments

La performance des compléments peut être améliorée par l'utilisation du chargement indépendant du domaine pour le contrat de pipeline. L'activation peut être améliorée en générant des images natives pour les segments de pipeline.

Le chargement indépendant du domaine améliore les appels entre domaines

Lorsqu'un complément est chargé dans un domaine d'application distinct, les appels entre l'hôte et le complément sont marshalé à travers la limite du domaine d'application par le pipeline. La performance de ces appels entre domaines est considérablement améliorée si l'assembly qui contient le contrat est chargé comme indépendant du domaine.

L'assembly doit avoir un nom fort et doit être installé dans le Global Assembly Cache, et il doit avoir le LoaderOptimizationAttribute avec l'indicateur LoaderOptimization.MultiDomainHost ou LoaderOptimization.MultiDomain.

Éviter le compilateur JIT améliore l'activation

Le compilateur juste-à-temps (JIT) ralentit de manière substantielle les performances de l'activation des compléments, en particulier lorsque le complément est activé dans un domaine d'application distinct. Pour éviter d'utiliser le compilateur JIT, suivez ces indications :

  • Attribuez des noms forts à vos assemblys de pipeline et installez-les dans le Global Assembly Cache.

  • Utilisez Ngen.exe (Native Image Generator) pour créer des images natives pour vos assemblys de pipeline.

  • Assurez-vous que l'assembly qui contient le contrat est chargé comme indépendant du domaine, comme décrit dans la section précédente.

    RemarqueRemarque

    Ce point est extrêmement important.Si le contrat n'est pas chargé comme indépendant du domaine, aucun des composants côté complément ne peut utiliser des images natives.

  • Appliquez le LoaderOptimizationAttribute à l'assembly hôte avec l'indicateur MultiDomainHost ou l'indicateur MultiDomain, pour permettre aux images natives des assemblys .NET Framework d'être partagées à travers les domaines d'application.

    RemarqueRemarque

    Cette amélioration des performances ne sera pas détectable en cas d'exécution sous le débogueur, car le processus d'hébergement (vshost.exe) n'est pas configuré pour le partage d'assembly.Vous pouvez désactiver le processus d'hébergement, mais cela n'est pas recommandé.La performance ne doit pas être mesurée lors de l'exécution sous le débogueur.

Voir aussi

Référence

LoaderOptimizationAttribute

LoaderOptimization

Ngen.exe (Native Image Generator)

Concepts

Domaines d'application et assemblys