Влияние на производительность пустых методов Page_Load () - PullRequest
2 голосов
/ 23 марта 2011

При добавлении новой страницы или пользовательского элемента управления в приложение веб-формы ASP.NET класс code-behind содержит пустой обработчик события Page_Load ():

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

У меня есть существующее веб-приложение, гдемногие страницы и элементы управления по-прежнему содержат эти пустые обработчики событий (они не используются).

Вопрос: Есть ли какое-либо влияние на производительность из-за этих пустых обработчиков событий и, следовательно, их следует удалить из всехстраницы и элементы управления?

Обратите внимание: Меня не беспокоит в основном (или не только) какие-либо накладные расходы времени выполнения из-за вызова пустого обработчика событий.Мне также интересно узнать о каких-либо накладных расходах, когда страница (разметка) компилируется JIT (поскольку обработчики событий должны быть подключены к событиям - возможно, с использованием некоторого кода отражения).

Обновление : реального ответа пока не было, поэтому я не могу принять ни одного из них.

Ответы [ 3 ]

4 голосов
/ 04 мая 2011

AutoEventWireup не выполняется во время компиляции.Когда он установлен на true, среда выполнения должна искать каждый из обработчиков событий страницы, используя для этого метод Delegate.CreateDelegate.Вот отличная статья, которая описывает это поведение: Внутри AutoEventWireup .

Также есть похожий вопрос по SO: стоимость производительности autoeventwireup .

2 голосов
/ 23 марта 2011

Хотя фрейм стека должен быть настроен так, чтобы входить и выходить из вашего метода (и ничего не делать), а не просто вызывать базовую реализацию (в данном случае System.Web.UI.Page ), влияние на производительность невероятно мало и, скорее всего, неизмеримо, поэтому вы должно быть хорошо.

0 голосов
/ 23 марта 2011

Я вполне уверен, что Page_Load происходит, там или нет.Подобно тому, как происходит PreRender или Page_Init.

Удаление этого ничего не изменит для производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...