我一直在寻求提高我的asp.net页面性能,是否值得将autoeventwireup从true更改为false并添加事件处理程序或性能损失是否很小?
这是一个asp.net 2.0项目.
连接不是在编译时完成的.它是在运行时完成的.如本文所述:
http://odetocode.com/Blogs/scott/archive/2006/02/16/2914.aspx
由于每次创建页面时都必须调用CreateDelegate,因此会导致性能下降.性能损失可能微不足道,但确实存在.
来自MSDN文章.
.NET应用程序中的性能提示和技巧
避免使用Autoeventwireup功能
而不是依赖autoeventwireup,覆盖页面中的事件.例如,不要编写Page_Load()方法,而是尝试重载public void OnLoad()方法.这允许运行时必须为每个页面执行CreateDelegate().
知识库文章:
如何使用Visual C#.NET在ASP.NET Web窗体中使用AutoEventWireup属性
何时避免将AutoEventWireup属性的值设置为true
如果性能是关键考虑因素,请不要将AutoEventWireup属性的值设置为true.AutoEventWireup属性要求ASP.NET页面框架为每个ASP.NET Web窗体页面调用CreateDelegate函数.您必须手动覆盖页面中的事件,而不是使用自动连接.