Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
-4
21:18, 22 июня 2011

Хэлперы (helpers) в ASP.NET MVC и производительность

В маниакальной погоне за производительностью в веб-приложениях ASP.NET MVC, мы, наконец, добираемся и до представлений (шаблонов).

Производительность рендеринга (вывод в поток исходного кода HTML) представлений.

Как обычно, Майкрософт стремится к универсальности и потому разработала богатый набор хелперов для ASP.NET MVC (Html-helpers, Url-helpers, строготипизированные хелперы и т.п.)

Штука, несомненно (!) очень удобная, но посмотрим, например, на производительность UrlHelper`а. При количестве зарегистрированных маршрутов (routes) — 3 и выводимых на страницу ссылок — 100, мы используем в итерации удобный RouteUrl("RouteName", new { parameter = "value" }) и получаем время рендеринга страницы:

Time taken: 0,0055 sec (183) req/sec

А теперь без использования RouteUrl (т.е. просто печатаем маршрут хардкодом, вставляя необходимые параметры из переменной блока итерации /routename/?parameter=value:

Time taken: 0,0004 sec (2488) req/sec

Мне встречались представления, где практически отсутствовал HTML-код. Все теги элементов (чекбоксы, поля форм, кнопки и пр.) отрисовывались с использованием хелперов).

Причем, многие хелперы по своей сложности (логике) не уступали пользовательским элементам управления в ASP.NET Web Forms (UserControl).

-4
504
1