Вопрос

Важное обновление: см. Обновление 5 на дне, нет проблем с производительностью в ASP.NET MVC 3, это тестовая проблема

Я сделал простой Hello World Project в ASP.NET MVC2,3 ASPX и 3 бритва и сравнивал их. Что я вижу:

System                  Requests per second
-------------------------------------------
asp.net mvc 2 ASPX                     4200
asp.net mvc 3 Beta 1 ASPX              3200
asp.net mvc 3 Beta 1 Razor             1700

Что не так с бритвенным, это так медленно?

Обновлять:Я переделал тест. Все 4 тестовые виртуальные каталоги используют один и тот же пул приложения .NET 4 .NET 4. Все проекты выполняются с добавлением нового пустого проекта X и добавление 1 страницы с 1 линейной текстом и без кода. Все сайты скомпилированы в режиме выпуска. Моя система Windows 7, 4 ГБ I7 4 ядра. Я запускаю тест 2 раза, чтобы прогреться IIS, и это второй результаты запуска. Параметры скамейки Apache: AB -N100000 -C1000 результатов:

System         Requests per second   CPU Utilization
----------------------------------------------------
asp.net 4                     4780               43%
mcv 2                         4322               58%
mvc 3 beta 1 aspx             2324               54%
mvc 3 beta 1 razor            1615               54%

Обновление 2. Скотт Гутри ответил в своем блоге:

Мы еще не полностью оптимизировали MVC3 (обычно мы обычно много настроек кэша). Мы ожидаем, что бритва будет одинаковую производительность, что и двигатель просмотра .aspx, прежде чем он наконец будет выпущен.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc1 razor               1960               54%
mvc 3 rc2 razor               2187               54%
mvc 3 rc2 aspx                4014               58%

Обновление 5. Все тесты, сделанные в режиме выпуска, но проблема была debug="true" В моем файле Web.config (которые также эффекты выпускают сборки), после изменения его в FALSE, выпуск фиксирован. И интересно, как это влияет только на шаблон бритвы в этой шкале. Это должно быть в нашем разуме о развертывании.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%

Благодаря команде ASP.NET MVC, отличная работа!

Это было полезно?

Решение

(новый ответ, чтобы ответить на ваши номера RC2)

Спасибо за обновленные номера. Несколько очков:

  1. Ваши номера ASPX выглядят хорошо, в том смысле, что мы ожидаем, что MVC3 ASPX будет наравне с MVC2 ASPX (немного медленнее в таком примере мирового примера Hello)
  2. Ваши бритвы выглядят подозрительно. Мы знаем, что бритва немного медленнее, чем эквивалентный ASPX, однако разница должна быть не более 5% -7%. Ваши цифры указывают на 50% медленнее, что просто не совпадает с нашими результатами. Проверьте, включают ли проект в выпуске, и у вас есть debug="false" набор в web.config.
  3. Ваше утилизация CPU немного подозревается. С 1000 одновременных запросов CPU следует поднимать 100%. (Даже только 8 одновременных запросов должны быть достаточно, так как у вас есть 8 виртуальных ядер)
  4. Ваши тесты работают около 20-25 секунд. Это немного на нижней стороне, потому что короткая (1-2 секунды) взрыв активности в другом месте в системе может сравниться с вашими результатами.
  5. Связанные с пунктом 4, вы запускали каждый сценарий один или несколько раз? Вы видите много различий в результатах? Поскольку ваша ОС делает другие вещи на заднем плане, это типично видеть разные результаты между прогонами.

Другие советы

Как вы выполнили ориентир? Был ли ваш сайт развернут на IIS в режиме Release? Вы использовали <deployment retail="true" /> Раздел в вашей машине .Config? Также помните, что ASP.NET MVC 3 все еще находится под тяжелым развитием, поэтому вы не можете ожидать, что он будет полностью оптимизирован. По крайней мере, подождите, пока он не ударит RTM.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top