Latency - это наше всё

Work Add comments

Замечательная презентация “Высокие нагрузки: 14 правил для ускорения загрузки страниц” (англ.)
Автор - Steve Souder, тот самый который написал “High Performance Web Sites” и “Even Faster Web Sites”

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

Влияние latency на доход

Google: +500 ms  -20% traffic
Yahoo: +400 ms  -5-9% full-page traffic
Amazon: +100 ms  -1% sales

На конференции Velocity 2009 докладчикам от  AOL, Google, Microsoft и Shopzilla задали вопрос “почему это важно - уделять внимание производительности?”

  • Microsof (Bing): увеличение времени отклика на 2 секунды это -1,8% запрос/пользователь и -4,3% дохода с пользователя
  • Google: увеличение времени отклика на 400 ms это -0,59% запрос/пользователь
  • AOL: 25% падение количества page hits при удвоении времени отклика
  • Shopzilla: Ускорение с 7секунд до 2х дало +25% page hits, +7-12%  дохода и 50% экономия на железе

Почему сайты медленно грузятся?

Согласно Souder-а причины могут быть следующие:

  • Тормозит back-end
  • Тормозит front-end
  • Тормозит интернет

Steve говорит, что 80-90% всего времени тратится на front-end и соответсвенно оптимизировать надо как раз эту часть в первую очередь. И дешевле всего и эффект виднее.

Как исправить

Вот его 14 правил:

  1. Делать меньше HTTP запросов
  2. Использовать CDN
  3. Не забыть про Expires
  4. Использовать Gzip компрессию
  5. Все стили на верх страницы
  6. Все скрипты - вниз
  7. Избегать CSS expressions
  8. Выносить JS и CSS во внешние файлы
  9. Уменьшать DNS lookups
  10. Сжимать JS
  11. Избегать redirect-ов
  12. Выкинуть повторяющийся JS
  13. Не забыть про ETags
  14. Сделать AJAX контент cacheable

Сама презентация поясняет основные приёмы ускорения загрузки страниц:

  • сначала грузим только то, что надо для отображения станицы, затем всё остальное
  • 6 способов загрузить JS и чем они отличаются
    XHR Eval, XHR Injection, JS in Iframe, JS DOM Element, JS Defer, document.write Script Tag
  • как прятать от пользователя что мы ещё не все загрузили (индикатор загрузки в браузерах)
  • несколько неблокирующих способов грузить JS
  • способы вызова/инициализации JS со страницы, он называет это “coupling techniques”
    hardcoded callback, window onload, timer, degrading script tags, script onload
  • какие домены лишние, а какие наоборот надо добавить в round-robin DNS
  • почему для статики HTTP 1.0 лучше чем HTTP 1.1
  • фокусы с flush() на разных языках
  • эффективные и не эффективные CSS

Похожие записи:

Leave a Reply

Entries RSS Comments RSS Log in Admin