在我的asp.net應用程序中,我提到了大約50個程序集(20個已編譯的類庫& 30第三方程序集),如果我在GAC而不是BIN中部署我的程序集,我會得到任何性能好處嗎?有相當數量?部署在GAC中的Assmbley具有性能優勢?
2
A
回答
3
不,GAC只提供了一種跨應用程序共享程序集的方法(它們不需要自己的本地副本,只需要在一個位置應用更新)。
如果你需要更好的表現,你應該看看NGen(JIT'ing)。
4
沒有性能優勢。每當CLR嘗試查找組合文件時,它總是首先查找應用程序目錄。
如果要將組件用於多個應用程序,那麼可以將它們放入GAC中。
編輯: 我需要糾正我的答案。 CLR將首先在GAC中尋找組裝。正確的順序如下所示:
GAC
AppDir\AssemblyName.dll
AppDir\AssemblyName\AssemblyName.dll
AppDir\anyOfPrivatePathsConfigured\AssemblyName.dll
AppDir\anyOfPrivatePathsConfigured\AssemblyName\AssemblyName.dll
So maybe there is performance benefit but I doubt it's measurable. And I wouldn't advice putting assemblies in GAC for performance benefit.
5
您可能會遇到改進的加載性能強命名dll時,他們在GAC中。原因是.NET在加載dll時對強命名dll dll進行了哈希驗證。但是,如果dll位於GAC .NET中,則假定在將dll添加到GAC時已經完成了哈希驗證。
你可以得到改進的另一個領域加載性能是如果你的應用程序有幾個appdomains。然後,您可以指示.NET跨應用程序域共享強命名的命名dll,而不是每個AppDomain加載一個,從而節省內存和加載時間。
請參閱此鏈接的詳細信息:http://msdn.microsoft.com/en-us/magazine/cc163655.aspx
相關問題
- 1. Ansible等部署工具在shell中的優勢
- 2. 在tomcat上部署sling + jackrabbit的優勢?
- 3. GAC中的DLL部署-ASP.NET
- 4. Silverlight是否比JavaScript有性能優勢?
- 5. 將SQL2000升級到SQL2005時是否具有性能優勢?
- 6. 預呈現HTML5畫布圈子是否具有性能優勢?
- 7. MySQL枚舉性能優勢?
- 8. 雲計算在小型地理區域部署中的優勢
- 9. C#中的屬性優勢
- 10. 將dll部署到GAC
- 11. 選擇標籤的性能優勢?
- 12. 使用Tomcat客戶端部署者有什麼優勢?
- 13. .NET中的「鏈接」語句是否有任何性能優勢?
- 14. 調整具有共同優勢的div
- 15. 部署自定義內容模型時,引導程序部署比動態部署有什麼優勢?
- 16. 排序CSS屬性是否有性能優勢?
- 17. 將我的DLL部署到GAC,參考其他不在GAC中的DLL
- 18. 性能優勢java.util.Date compareTo vs before/after?
- 19. 單罐vs多罐 - 性能優勢
- 20. 性能優勢。第2輪:VARBINARY vs VARCHAR
- 21. 使用多個端點的性能優勢或劣勢
- 22. ClickOnce部署性能
- 23. 在我的項目中通常在GAC中部署程序集?
- 24. 在委託中存儲平臺調用的性能優勢?
- 25. 從性能角度來看,還有哪些更有優勢?
- 26. ForkJoinWorkerThread的特性和優勢
- 27. 定義優勢的優勢
- 28. 是否有「從......導入...」的性能優勢?
- 29. Angular的組件風格封裝是否有性能優勢?
- 30. 在Dart中使用固定長度列表有沒有性能優勢?
只是確保你測量應用的「速度」有和無NGEN。與JIT編譯的應用程序相比,某些應用程序實際運行速度較慢。 –