我一直在研究如何提高ASP.NET页面的性能。将
这是一个ASP.NET 2.0项目。
autoeventwireup
从true
更改为false
并添加事件处理程序是否值得,还是性能惩罚非常小?这是一个ASP.NET 2.0项目。
autoeventwireup
从true
更改为false
并添加事件处理程序是否值得,还是性能惩罚非常小?连接线路不是在编译时完成的,而是在运行时完成的。正如本文所述:
http://odetocode.com/Blogs/scott/archive/2006/02/16/2914.aspx
由于每次创建页面都必须调用CreateDelegate,因此存在性能损失。尽管可能很小,但确实存在。
来自MSDN文章。
避免使用Autoeventwireup功能
不要依赖于autoeventwireup,而是覆盖Page中的事件。例如,不要编写Page_Load()方法,而是尝试重载public void OnLoad()方法。这样可以使运行时不必为每个页面执行CreateDelegate()。
知识库文章:
如何使用AutoEventWireup属性在ASP.NET Web表单中使用Visual C# .NET
什么时候避免将AutoEventWireup属性的值设置为true
如果性能是关键考虑因素,请勿将AutoEventWireup属性的值设置为true。 AutoEventWireup属性需要ASP.NET页面框架对每个ASP.NET Web表单页面进行CreateDelegate函数调用。您必须手动覆盖页面上的事件,而不是使用自动连接。
性能差异可以忽略不计。
性能为0,因为一旦连接(一旦应用程序在内存中编译),它就不必再次执行。我的意思是,ASP.NET框架不会通过名称不断迭代每个方法,以查看是否应将其连接。
但是,我强烈建议您关闭它,因为它通常会导致双重页面加载或其他问题(如果您自己连接事件,但由于命名方式,ASP.NET也会连接它)。
这是一个我希望默认关闭的功能。