Как я могу оптимизировать конвейер MVC и IIS для получения большей скорости? - PullRequest
2 голосов
/ 23 февраля 2010

Я занимаюсь настройкой производительности простого приложения, которое использует MVC на IIS 7.5. У меня есть StopWatch, запускающийся в Application_BeginRequest, и я делаю снимок в Controller.OnActionExecuting.

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

Я получаю 700 микросекунд на своем четырехъядерном 3GHz (проект скомпилирован Выпуск x64), и мне интересно, где узкое место, особенно слышать, как некоторые люди говорят, что можно получить до 8000 загрузок страниц в секунду с MVC.

Как мне оптимизировать конвейер MVC и IIS для получения более высокой скорости?

Ответы [ 4 ]

4 голосов
/ 15 января 2011

Может пригодиться инструмент «IIS Tuner». Это инструмент с открытым исходным кодом, и вы можете исследовать хитрости, сделанные приложением. инструмент доступен в codeplex

2 голосов
/ 23 февраля 2010

Я получаю 700 микросекунд на своем четырехъядерном 3GHz (проект скомпилирован Выпуск x64), и мне интересно, где узкое место, особенно слышать, как некоторые люди говорят, что с MVC можно получить до 8000 загрузок страниц в секунду.

Обратите внимание, что результат 700 микросекунд в конвейере не является несовместимым с пропускной способностью 8000 запросов в секунду. (Возможно, вы путаете время отклика с пропускной способностью.) Если 8 000 человек одновременно отправляли запросы, и каждый из них выполнялся менее чем через одну секунду, это было бы 8 000 запросов в секунду независимо от того, было ли время ответа 1 & micro; s, 700 & micro; с или 700 мс.

Неужели 700 микросекунд слишком долго, чтобы конвейер IIS + MVC работал при каждой загрузке страницы?

Не обязательно. Вам нужно оценить, действительно ли вы насыщены запросами.

1 голос
/ 15 октября 2012

Может пригодиться инструмент «IIS Tuner». И делает WCAT не работает. Есть мнения?

подробнее, как показано ниже, D: \ Program Files \ IIS Resources \ Клиент WCAT> wcclient.exe localhost

wcclient.exe 5.2.3652 - Клиент набора инструментов для анализа веб-емкости.

Copyright (c) 1995-2002 Microsoft Corporation. Все права защищены. Составлено 29 мая 2003 г., 16:28:20 Подключение основного потока клиента ... Связано. Ожидание сообщения о настройке: подключение мертвого потока контроллера ... Готово. Версия IP, запрошенная для тестирования, не указана Сообщение заголовка получающего скрипта: Готово. Получение таблицы строк: Получение 1 страниц скрипта ... Не удалось определить адрес сервера для IP-адреса, поддерживаемого клиентом: localhost Подключение клиента об отмене уведомления ... Не удалось разрешить адрес (а) сервера.

0 голосов
/ 09 декабря 2011

Вы смотрели в: - асинхронные контроллеры? Процессы ASP.NET ограничены до 12 потоков (или 12 потоков на процессор), не знаю, какие именно. - есть куча хитростей микрооптимизации (например, MVC загружает все движки вида ... когда вам нужно только, чтобы Razor удалил остальные)

Итак, безусловно, есть способы повысить производительность, и у вас есть полный контроль над HTML в MVC (без представления состояния, навязчивой разметки, ненужных обратных передач и т. Д.)

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