Вопросы производительности о asp.net mvc (частичные представления и помощники HTML) - PullRequest
3 голосов
/ 25 августа 2009

Мне просто интересно, сколько производительности вы потеряете, используя множество частичных представлений и HTML-помощников в приложении asp.net mvc.

Как я знаю, помощники html должны быть легковесными, но я не вижу их рендеринга так быстро, как если бы вы только что создали прямой html.

Не поймите меня неправильно. Я люблю их, но мне просто интересно, как они повлияют на ваш сайт. Я думаю, не так много, но некоторые из этих помощников HTML могут быть сложными и делать совсем немного.

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

Какое влияние на производительность оказывают частичные представления?

Ответы [ 4 ]

2 голосов
/ 25 августа 2009

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

  • Использование большого количества частичных представлений будет очень медленным , когда компилятор ASP.NET компилирует только в режиме отладки . В режиме отладки MVC не кэширует расположения файлов , поэтому он должен проверять каждый раз, когда он делает представление. Не обманывайтесь! Эта проблема исчезает в режиме выпуска.

  • В сборке MVC Futures для MVC 1.0 есть несколько «строго типизированных» помощников HTML, которые (1) примерно на 10x медленнее , чем помощники в сборке System.Web.Mvc и (2) вероятно несовместимы (с точки зрения синтаксиса) с (предположительно улучшенными, из POV производительности) «строго типизированными» помощниками, появившимися в MVC 2. Я бы рекомендовал держаться подальше от них.

Но в целом я согласен: сначала введите правильный код, затем профиль.

2 голосов
/ 25 августа 2009

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

1 голос
/ 25 августа 2009

Ваше серверное оборудование и сетевая инфраструктура будут в большей степени ограничивающим фактором, чем помощники html и частичные представления. Не думай об этом.

0 голосов
/ 25 августа 2009

Это преждевременная оптимизация. Сначала напишите его, затем профилируйте, и если вы обнаружите, что производительность не соответствует вашим требованиям / SLA, используйте инструменты профилирования, чтобы найти неэффективный код. Вероятно, это не будут вспомогательные html-методы, это будут такие вещи, как вызовы базы данных и другие перекрестные вызовы процесса.

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