自动事件绑定的性能成本是多少?

7
我一直在研究如何提高ASP.NET页面的性能。将autoeventwireuptrue更改为false并添加事件处理程序是否值得,还是性能惩罚非常小?
这是一个ASP.NET 2.0项目。
4个回答

10

5

来自MSDN文章。

.NET应用程序的性能技巧和窍门

避免使用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

性能差异可以忽略不计。


2
你对这个说法有什么证据? - Jon
3
举证责任在优化者身上。 - Dustin Getz

-1

性能为0,因为一旦连接(一旦应用程序在内存中编译),它就不必再次执行。我的意思是,ASP.NET框架不会通过名称不断迭代每个方法,以查看是否应将其连接。

但是,我强烈建议您关闭它,因为它通常会导致双重页面加载或其他问题(如果您自己连接事件,但由于命名方式,ASP.NET也会连接它)。

这是一个我希望默认关闭的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接