Сценарий: приложение ASP.NET MVC wep сидит на моем локальном компьютере (Vista Ultimate, IIS 7.0), ничего не происходит, кроме одного пользователя (меня), который вошел в систему и просматривает страницу индекса. Страница включает 9 динамических изображений, извлеченных из базовой БД и возвращенных действием контроллера. У меня фактическое время обработки этих изображений сократилось до 15 мс каждое. Включите Firebug и смотрите, как загружается страница. Я вижу 9 запросов на одновременное срабатывание изображений - неудивительно, - но четыре возвращаются ко мне почти сразу; еще два через 0,5 с; другой через 1 с; затем 1,5 и 2 секунды. Ведение журнала на стороне сервера предполагает, что отдельные ответы по-прежнему занимают всего 15 мс. Итак, похоже, что IIS выстраивает очередь в блоки по 500 мс. (Повторение эксперимента дает разные результаты, но каждый раз изображения возвращаются в виде одинаковых блоков - например, вы можете получить три в первой группе, затем три с 0,5 с, два с 1 с и т. Д., И это всегда с интервалами 500 мс, а ничего else.) Он также воспроизводится в разных браузерах и не воспроизводится с другими формами контента.
Я не нашел особого упоминания об этой проблеме, поэтому предполагаю, что это не ошибка IIS, поэтому так оно и есть:
i) IIS на настольных ОС намеренно делает это, чтобы заставить вас использовать серверные ОС в производстве? ii) Есть какая-то магическая обстановка, ускользавшая от меня с тех пор, как я знал IIS? iii) Что-то особенное для MVC или SQL Server 2008? или что-то другое?
Возможно, вы используете настольную ОС, и сборщик мусора пытается выполнить очистку после создания вашего образа между каждым запросом.
Но чтобы получить четкое представление о том, на что тратится время, попробуйте включить отслеживание неудачных запросов IIS (код состояния 200) и посмотреть, сколько времени уходит на каждый запрос. Кроме того, вы можете посмотреть на счетчики производительности .NET для GC и исследовать% времени, потраченного на GC и индуцированный GC, чтобы увидеть, верны ли мои предположения сверху.