共用方式為


增益集效能

更新:2007 年 11 月

增益集效能可透過針對管線合約使用定義域中性方式載入加以改善。啟動過程則可透過產生管線區段的原生影像改善。

定義域中性方式載入可改善跨定義域呼叫

將增益集載入不同的應用程式定義域時,主應用程式和增益集之間的呼叫會透過管線跨應用程式定義域界限進行封送處理。如果載入包含合約的組件做為定義域中性方式,這些跨定義域呼叫的效能便會大幅提升。

組件必須擁有強式名稱並且安裝在全域組件快取中,同時還必須擁有包含 LoaderOptimization.MultiDomainHost 旗標或 LoaderOptimization.MultiDomain 旗標的 LoaderOptimizationAttribute

避免 JIT 編譯器可改善啟動過程

Just-In-Time (JIT) 編譯器會大幅增加增益集啟動過程的效能負荷,尤其是在不同的應用程式定義域中啟動增益集時。若要避免使用 JIT 編譯器,請依照下列方針執行:

  • 針對您的管線組件使用強式名稱,並且將其安裝於全域組件快取中。

  • 使用 原生映像產生器 (Ngen.exe) 為管線組件建立原生影像。

  • 確定以定義域中性方式載入包含合約的組件,如前一節中所述。

    注意事項:

    這點相當重要。如果合約未以定義域中性方式載入,則增益集端的元件就無法使用原生影像。

  • LoaderOptimizationAttribute 套用至包含 MultiDomainHost 旗標或 MultiDomain 旗標的主應用程式組件,以便跨應用程式定義域共用 .NET Framework 組件的原生影像。

    注意事項:

    使用偵錯工具時無法偵測到這項效能提升,因為裝載處理序 (vshost.exe) 未設定為共用組件。您可以停用裝載處理序,但是不建議這樣做。效能不應在使用偵錯工具時測量。

請參閱

概念

應用程式定義域和組件

參考

LoaderOptimizationAttribute

LoaderOptimization

原生映像產生器 (Ngen.exe)