我一直在尋找提高我的asp.net頁面的表現,是值得真正改變autoeventwireup爲false,並添加事件處理程序或者是性能損失很小?autoeventwireup性能成本
這是一個asp.net 2.0項目。
我一直在尋找提高我的asp.net頁面的表現,是值得真正改變autoeventwireup爲false,並添加事件處理程序或者是性能損失很小?autoeventwireup性能成本
這是一個asp.net 2.0項目。
連接不在編譯時完成。它在運行時完成。正如本文中描述:
http://odetocode.com/Blogs/scott/archive/2006/02/16/2914.aspx
有因爲調用createDelegate方法必須作出每次頁面被創建時的性能損失。性能命中可能可以忽略不計,但它確實存在。
的性能差異可以忽略不計。
性能是0,因爲一旦連接好(一旦你的應用程序在內存編譯),它永遠不會有做一遍。我的意思是,ASP.NET框架並不是經常通過名稱檢查每種方法,看它是否應該被連接起來。
但是,我強烈建議你關閉它,因爲它通常會導致雙頁面加載或其他任何問題(如果你自己連接一個事件,但由於以某種方式命名它,ASP.NET也會連接它)。
這是我的願望是默認爲關閉某項功能。
來自MSDN文章。
Performance Tips and Tricks in .NET Applications
避免Autoeventwireup功能
而不是依靠autoeventwireup的,從頁面重載的事件。例如,不要編寫Page_Load()方法,可以嘗試重載public void OnLoad()方法。這允許運行時從每個頁面執行CreateDelegate()。
知識庫文章:
How to use the AutoEventWireup attribute in an ASP.NET Web Form by using Visual C# .NET
時避免AutoEventWireup屬性的值設置爲true
如果性能是一個重要的考慮因素,不要設置的值AutoEventWireup屬性爲true。 AutoEventWireup屬性需要ASP.NET頁面框架爲每個ASP.NET Web窗體頁面調用CreateDelegate函數。不必使用自動連接,您必須手動覆蓋頁面中的事件。
你有什麼證據證明這一說法? – Jon 2008-11-05 20:05:22