Share via


Add-In-Leistung

Die Leistung von Add-Ins kann durch domänenneutrales Laden für den Pipelinevertrag verbessert werden. Die Aktivierung kann durch Erstellen systemeigener Abbilder für Pipelinesegmente verbessert werden.

Verbessern von domänenübergreifenden Aufrufen durch domänenneutrales Laden

Wenn ein Add-In in eine separate Anwendungsdomäne geladen wird, werden Aufrufe zwischen dem Host und dem Add-In von der Pipeline über die Grenze der Anwendungsdomäne hinweg gemarshallt. Die Leistung dieser domänenübergreifenden Aufrufe wird erheblich verbessert, wenn die Assembly, die den Vertrag enthält, als domänenneutral geladen wird.

Die Assembly muss über einen starken Namen verfügen und im globalen Assemblycache installiert sein. Außerdem muss die Assembly über das LoaderOptimizationAttribute mit dem LoaderOptimization.MultiDomainHost- oder dem LoaderOptimization.MultiDomain-Flag verfügen.

Verbessern der Aktivierung durch Vermeiden der Verwendung des JIT-Compilers

Der JIT-Compiler (Just in Time) verursacht erheblichen Leistungsaufwand durch die Aktivierung von Add-Ins, vor allem, wenn das Add-In in einer separaten Anwendungsdomäne aktiviert wird. Beachten Sie die folgenden Richtlinien, um eine Verwendung des JIT-Compilers zu vermeiden:

  • Geben Sie den Pipelineassemblys starke Namen, und installieren Sie sie im globalen Assemblycache.

  • Erstellen Sie mit dem Ngen.exe (Native Image Generator) systemeigene Abbilder für die Pipelineassemblys.

  • Vergewissern Sie sich, dass die Assembly, die den Vertrag enthält, als domänenneutral geladen wurde, wie im vorherigen Abschnitt erläutert.

    HinweisHinweis

    Dieser Schritt ist von höchster Bedeutung.Wenn der Vertrag nicht als domänenneutral geladen wurde, kann keine der Add-In-seitigen Komponenten systemeigene Abbilder verwenden.

  • Wenden Sie das LoaderOptimizationAttribute mit dem MultiDomainHost- oder dem MultiDomain-Flag auf die Hostassembly an, sodass systemeigene Abbilder der .NET Framework-Assemblys für mehrere Anwendungsdomänen freigegeben werden.

    HinweisHinweis

    Beim Ausführen im Debugger macht sich die Leistungsverbesserung nicht bemerkbar, da der Hostprozess (vshost.exe) nicht für das Freigeben einer Assembly eingerichtet ist.Sie können den Hostprozess deaktivieren, dies wird jedoch nicht empfohlen.Während der Ausführung im Debugger sollte die Leistung nicht gemessen werden.

Siehe auch

Referenz

LoaderOptimizationAttribute

LoaderOptimization

Ngen.exe (Native Image Generator)

Konzepte

Anwendungsdomänen und Assemblys