Каковы затраты на включение RenderPartial в страницу MVC3? - PullRequest
3 голосов
/ 29 июля 2011

Я стараюсь максимально оптимизировать свой код. Я использую много частичных файлов, таких как:

@if (Model.PageMeta.Sidebar == PageMetaSidebar.Small) { Html.RenderPartial("_SmallSidebar"); }
..
..
..

Может кто-нибудь сказать мне, если это связано с производительностью. Я понимаю, что взгляды Razor составлены. Это тот случай, когда при отображении страницы есть другое чтение диска, чтобы получить данные для каждого из частичных файлов, которые я использую. Если это так, то сколько дополнительных издержек я могу ожидать, например, с 5 RenderPartials на моей странице макета.

Ответы [ 3 ]

2 голосов
/ 29 июля 2011

Здесь не будет заметного снижения производительности, так как частичные данные просто извлекаются на веб-сервере asp.net перед передачей результирующего HTML-кода обратно в браузер. Это не дорогой диск для чтения, и он не будет появляться медленнее, чем если бы это был один файл cshtml. Очевидно, что частичные значения должны использоваться, если одно и то же частичное представление повторно используется во многих представлениях. Если используется только в одном представлении, это просто вопрос ясности, разделяя его на отдельные части, чтобы разделить части вашей модели на разные представления.

Обратите внимание, вы также можете просто использовать:

@Html.Partial("YourPartial")

вместо использования RenderPartial. Это будет выглядеть в локальной папке просмотра, а затем в общей папке, если она не найдена.

0 голосов
/ 30 июля 2011

Если вы хотите лучше понять потенциальные потери производительности, вы можете поиграть с mvc-mini-profiler .

Пожалуйста, обратите внимание, что я не защищаю преждевременную оптимизацию. Однако использование инструментов профилирования поможет вам лучше понять возможные узкие места, что поможет вам избежать их в будущем.

0 голосов
/ 29 июля 2011

Я не думаю, что использование RenderPartial ~ 5 раз окажет достаточно значительное влияние на плохой дизайн ваших страниц. Если имеет смысл вывести логику (сделать страницу чище, использовать несколько представлений и т. Д.), Сделайте это. Если вы заметили значительные проблемы с производительностью, вам следует посмотреть на них в это время, но не преждевременно оптимизировать и создавать плохой дизайн, потому что вы ДУМАЕТЕ, что это может что-то замедлить.

...