向 ASP.NET Webforms 应用程序添加新页面或用户控件时,代码隐藏类包含一个空的 Page_Load() 事件处理程序:
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
我有一个现有的 Web 应用程序,其中许多页面和控件仍然包含这些空事件处理程序(它们未使用)。
问题:这些空事件处理程序是否会对性能产生影响,是否应该将它们从所有页面和控件中删除?
请注意:我主要(或不仅仅是)担心任何运行时开销,因为调用了空事件处理程序。我还想知道页面(标记)是 JIT 编译时的任何开销(因为事件处理程序必须连接到事件 - 可能使用一些反射代码)。
更新:到目前为止还没有真正的答案,所以我不能接受其中任何一个。
最佳答案
AutoEventWireup
未在编译时完成。当它设置为 true 时,运行时必须使用 Delegate.CreateDelegate 方法查找每个页面事件处理程序。这是一篇描述此行为的精彩文章:Inside AutoEventWireup .
关于asp.net - 空 Page_Load() 方法的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408481/