Об алгоритме анализатора

Его основой, естественно, служит HTML-файл заглавной страницы рассматриваемого ресурса. Он парсится на наличие фреймов (которые затем также парсятся на наличие других файлов), файлов стилей (сейчас также поддерживается @import), файлов скриптов, фоновых картинок, картинок и мультимедийных файлов (<embed>). Затем все файлы последовательно загружаются, файлы стилей дополнительно анализируются на наличие фоновых картинок (и подключения внешних файлов).

Для каждого файла вычисляется размер, тип, ETag и кешируюшие заголовки. Для HTML-файлов дополнительно проводится простейшая минификация, для CSS — с использованием CSS Tidy 1.3, для JS — при помощи Dean Edwards Packer. Затем все текстовые файлы дополнительно архивируются. Результат сравнивается с исходным скачанным файлом (насколько он уже изначально сжат). Естественно, данная методика сжатия не идеальна, но она дает понять, проводились ли действия по уменьшению размеров указанных файлов или нет.

Для изображений также проводится оптимизация. Если изображение в формате BMP, то оно переводится в PNG с помощью bmp2png. Если в формате GIF, то используется gif2png. Для PNG-изображений применяется pngcrush. JPG-изображения оптимизируются при помощи jpegtran

Затем на основании всех полученных данных строится интегральная оценка ресурса, при просмотре результатов анализа также выдаются все сведения о загруженных файлах и рекомендации по каждому случая возможной оптимизации скорости загрузки (уменьшению числа запросов или размера самих загружаемых файлов).

Дополнительно анализируется размер Cookie-заголовков, выставляемых на сервере. За характерное время сетевых задержек принимается DNS lookup с данного сервера до анализируемого (dig) и время на открытия сокета (ab). Естественно, это не покрывает всех случаев и даже может не быть средневзвешенным значением, но вычисленная таким образом задержка является абсолютно реальной (фактически, анализируемая страница открывется с этого сервера). При превышении временем задержки 200мс оно автоматически уменьшается до 200мс (т.е. сейчас задержка не может быть больше 200 миллисекунд, это сделано для предотвращения влияния лагов на сервере на результаты анализа).

Итоговые времена загрузки на модеме и скоростном канале являются только ориентировочными, для скоростного канала возможны расхождения на порядок, связанные со множеством дополнительных задержек у клиентов. Оба времени загрузки подразумевают, что все компоненты страницы будут присутствовать у клиента по их окончанию (т.е. веб-страница покажется и ранее, как только браузер загрузит HTML-, CSS-, JS-файлы, но картинки все еще будут продолжать грузиться). Вычисленное ускорение загрузки не является максимальным, но достижимо при выполнении всех рекомендаций.

Для моделирования процесса загрузки сайта и его визуальной оптимизации (позволяет рассчитать ускорение загрузки гораздо более точно) нужно зарегистрироваться.

По любым вопросам можно обратиться через данную форму или по ICQ 138109649

Известные проблемы

Далее