Быстродействие веб-сайта. Методичный анализ и глубины клиентской оптимизации.
Евгений Котельницкий
Что влияет на производительность; средства анализа показателей; правильно определяем цели и задачи; глубины клиентской оптимизации; анализ нескольких сайтов, которые назовёт аудитория.
3. План-Принципы работы WWW-На что уходит время? -Методичный анализ-Алгоритм оптимизации-Некоторые правила-Утилиты для мониторинга-Клиентская оптимизация-Психология ожидания
9. Загрузка веб-страницы
Этап
«Виновник»
1
Ожидание в очереди
HTTP спец.
2
DNS Lookup
Сеть
3
Открытие TCP/IP соединения
Сеть
4
Отправка HTTP запроса
Сеть
5
Разбор запроса сервером
Сервер
6
Формирование ответа
Сервер
7
Компрессия ответа (1)
Сервер
8
Пересылка ответа
Сеть
9
Распаковка ответа (1)
Браузер
10
Представление ответа
Браузер
11
Закрытие соединения? (2)
HTTP спец.
12
Отправка следующего запроса(3)
HTML
1)Если компрессия включена
2)Соединение не закрывается -ждём следующий запрос
3) Если для представления требуются другие компоненты
10. Мы можем уменьшить задержкина каждом этапе
Этап
Оптимизация
1
Ожидание в очереди
Уменьшить количество компонентов
2
DNS Lookup
Уменьшить количество различных доменов
3
Открытие TCP/IP соединения
Использовать сервера, которые географически ближе
4
Отправка HTTP запроса
Минимизировать размер шапки запроса (Cookies)
5
Разбор запроса сервером
Настройка / оптимизация сервера
6
Формирование ответа
Зависит от типа компонента
7
Компрессия ответа (1)
Отключить компрессию? А как же пункт 8?
8
Пересылка ответа
Минимизировать размер ответа
9
Распаковка ответа (1)
См. п. 7
10
Представление ответа
Оптимизировать HTML, CSS, JS и д.р.
11
Закрытие соединения? (2)
К счастью, соединение не закрывается в HTTP 1.1
12
Отправка следующего запроса (3)
Минимизировать кол-во компонентов и редиректов
13. Некоторые правила Ищем узкие места(учитываем приоритеты) Советы могут противоречить Стандартные приёмы могут усугубить ситуацию Учитываем задержки «без попадания в кэш»
14. 1.Собираем симптомы
2.Формулируем цели
3.Определяем узкие места
4.Составляем список задач
5.Оцениваем ожидаемый эффект
6.Оцениваем затраты
7.Расставляем приоритеты
8.Анализируем эффект
9.Выполняем итерационноАлгоритм оптимизации
27. «Экономный» способ сохранения.jpg для Retina1.Готовим изображение в 2 раза больше требуемого2.Сохраняем как .jpg с высокой компрессией (качество 30 -40%) 3.Уменьшаем размеры изображения в 2 раза с помощью CSS/ HTML4.Внешнее качество такой картинки повысится, а размер останется тем же
Оригинальный размер
Качество 80%
Размер 10Kb
Картинка в 2 разабольше
Качество 40%
Размер 11Kb
Картинка в 2 разабольше
Качество 80%
Размер 60Kb
28. Оптимизация компонентов / JavaScript
Отладка JavaScript в Google Chrome
Показываем статус долгого процесса
Не ждём чуда или «ТаймАут»
Preload
Lazy Load
Ajax Post-load