Моделирование задержки при разработке на локальном веб-сервере

Золотое правило производительности от Оптимизация производительности Yahoo:

80-90% времени отклика конечного пользователя проводится загрузка всех компоненты на странице: изображения, таблицы стилей, скрипты, Flash и т.д.

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

Как я могу моделировать задержку, чтобы я мог понять, как мое приложение будет работать, когда я развернул его в Интернете?

Я развиваюсь в первую очередь на Windows, но меня тоже будут интересовать решения для других платформ.

Ответ 1

Fiddler2 может сделать это очень легко. Кроме того, он делает гораздо больше, что полезно при разработке.

Ответ 3

YSlow может помочь вам. YSlow анализирует веб-страницы на основе Yahoo! правила.

Firefox Throttle. Это может снизить скорость (только для Windows).

Это плагины для Firefox.

Ответ 4

Вы можете просто настроить прокси-сервер, который будет транслировать трафик с вашего веб-сервера на него, а затем обратно в локальный браузер. Это было бы вполне реалистично (конечно, это зависит от того, где вы помещаете прокси).

В противном случае вы можете найти множество способов реализовать его в программном обеспечении.

Ответ 5

Запустите веб-сервер в ближайшем ящике Linux и настройте NetEm, чтобы добавить латентность к пакетам, оставив соответствующий интерфейс.

Если ваш веб-сервер не может работать под Linux, настройте ящик Linux как маршрутизатор между вашей тестовой клиентской машиной и вашим веб-сервером, а затем используйте NetEm в любом случае

Ответ 6

Хотя существует много способов моделирования латентности, включая некоторые очень хорошие аппаратные решения, одним из самых простых для меня является запуск прокси-сервера TCP в удаленном месте. Прокси-сервер прослушивает, а затем направляет трафик обратно в мой конечный пункт назначения. На удаленном сервере я запускаю программу unix под названием balance. Затем я указываю это на свой локальный сервер.

Ответ 7

Если вам нужно симулировать только один запрос на сервер, простой способ - просто сделать сервер sleep() за секунду до возврата.