Все о скорости сайтов Юрий Устинов Русоникс Москва, 20 июня 2013
Загрузка сайта DNS (узнаем, где сайт)
Загрузка сайта DNS (узнаем, где сайт) Сеть (стучимся туда, где сайт)
Загрузка сайта DNS (узнаем, где сайт) Сеть (стучимся туда, где сайт) Ждем ответа сервера (он создает html)
Загрузка сайта DNS (узнаем, где сайт) Сеть (стучимся туда, где сайт) Ждем ответа сервера (он создает html) Загружаем содержимое (html)
НЕЕЕЕЕЕЕЕ-Е-Е-Е-Е-Е-Е-ЕЕЕЕЕТ!!!!!
6 потоков
Время на сетевое взаимодействие Одноразовая задержка: DNS: расстояние до нейм-серверов и отклик Постоянная задержка: Расстояние до сервера с сайтом и отклик
Время на генерацию страницы
Неправильные настройки хостинга и битрикса
Неправильный код Тема отладки отлично раскрыта: Доклад Александра Сербула «Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр» ТАМ ЕСТЬ ВИДЕО доклада и.ppt
Ускоряем выдачу заголовков Сбрасывайте буфер вывода PHP (ЧО-ЧО?) Просто используйте PHP Flush (а, понятно) ПРИМЕР БЫЛ, но я его потерял
Кеширование компонентов, раздельная выдача содержимого Что-то нельзя кешировать? – в параллельную загрузку. Много элементов? – в ленивую загрузку.
Хороший пример параллельной загрузки: выдача гугла
Хороший пример ленивой загрузки: выдача ФБ, ВК, ТВТ Все знают как это бывает, правда?
Внешние коннекты Вам не нужно это Не вам нужно это Вам нужно не это Нужно вам не это Не вам это нужно Вам не это нужно Нужно не вам это КЭШИРУЙТЕ ИЛИ В ПАРАЛЛЕЛЬ Вам это не нужно Не нужно это вам Нужно это не вам Это не вам нужно Это вам не нужно Не это нужно вам Это нужно не вам Нужно не это вам
Плохой пример – один блогер Как-то нехорошо было бы показать скриншот прямо так. Вы его не видите, но он есть.
Загрузка контента Неправильно: для каждого файла новое соединение
Загрузка контента Неправильно: для каждого файла новое соединение Правильно: на одно соединение много файлов
Увеличение числа параллельных потоков
Сжатие данных
Снижение количества файлов Правило 6 потоков. Идеальная схема: до 3 js + до 3 css примерно равного размера
Спрайты Один большой спрайт – тоже плохо. Помним правило 6 потоков!
Уменьшение изображений Не уменьшать картинки тегами в html Не генерить превью «на лету» А мы генерим с кешированием! Особенно не генерить с кешированием Контролировать объем рекламных слайдеров
Правильное проектирование сайта Подробно про масштабируемую структуру веб-сервисов в моем докладе на Параллельная обработка блоков, вывод каркаса без ожидания результата.
Как измерять скорость работы сайта Наконец-то
WebPageTest.org: для профи
SiteSpeed.ru: подробный PDF-отчет
13 сек 6 сек Время загрузки главной страницы по данным sitespeed.ru, окт 2012
Относительное количество поисковых запросов по данным Google Trends, июнь сек 6 сек Наверное много других причин, но Время загрузки главной страницы по данным sitespeed.ru, окт 2012
На самом деле все уже изменилось Свежие данные: Евросеть: 15,6 сек (164 файла) Связной: 15,8 сек (242 файла!) Посмотрим, как это скажется на успешности и популярности связного в массах
Пример анализа Загрузка страницы: 10,6 с Начало отображения: 4,0 с Объем данных: 1,8 Мб Запросы к серверу: 140
Пример анализа Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
Пример анализа Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
Пример анализа Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
13 CSS 21 js, в т.ч. 6 с jquery Оптимизация скриптов и стилей: 0,7 сек. Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
22 стандартных PNG-изображения Объединение в спрайт: 0,4 сек. Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
3 нестандартных шрифта Отказаться: 0,6 сек. или Вкл.кэш: 0,2 сек. Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
Отложенная загрузка слайдов 5 из 6: 2,2 сек. Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
Обзор открытых соединений От такого использования поддомена нет никакого выигрыша Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
Обзор открытых соединений ОК Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org
Данные: sitespeed.ru, webpagetest.orgsitespeed.ruwebpagetest.org Обзор открытых соединений ОК Выигрыш от правильного использования поддоменов сек.
Пример анализа Время загрузки страницы: 10,6 6,0 сек. Начало отображения: 4,0 2,9 сек. Запросы к серверу:
Юрий Устинов РУСОНИКС Facebook:yuri.ustinovrusonyxyuri.ustinovrusonyx Спасибо, #bitrixconf :)