X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

4 страниц V   1 2 3 4 >
Открыть тему
Тема закрыта
> Анализ скорости загрузки Maulnet.ru, За МКАДом тоже есть жизнь?
webpavilion
webpavilion
Topic Starter сообщение 26.12.2009, 11:23; Ответить: webpavilion
Сообщение #1


Здравствуйте.

Прежде всего хочется внести немного ясности. Облить фекалиями можно любую даже очень качественную работу, при желании можно придраться к чему угодно, никто от этого не застрахован. Каждый исполнитель в праве самостоятельно определять соотношение качества готового продукта к затраченному на него времени, для коммерческих проектов в эту простую формулу обычно добавляют еще сроки и стоимость.

Все вы наверно видели новый дизайн блога Маула, в комментариях я вежливо указал что работа, мягко говоря, не профессионально выполнена на что Маул в свою очередь ответил, что делали «не школьники». Это и послужило основной причиной для создания этой темы. Стало очень интересно насколько Я круче чем «не школьник».

Этап первый – подготовительный:
Прикрепленный файл  one.png ( 952,56 килобайт ) Кол-во скачиваний: 42

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

Как вы видите кодировка моего сервера по умолчанию windows-1251 а макет в utf-8 исправим это досадное недоразумение следующим в .htaccess:
php_value default_charset utf-8

в итоге мы получили стенд для дальнейших экспериментов вот с такими характеристиками:
Прикрепленный файл  1_debug.png ( 15,78 килобайт ) Кол-во скачиваний: 71

На этом первый этап закончим и подождем выходных, что бы продолжить.

Этап второй – gzip и объединение файлов
Суббота утро, ясность голове вернул крепкий чай. После беглого анализа приступим. Самым простым и достаточно эффективным решением для оптимизации является сжатие данных, для apache2 есть замечательный модуль mod_gzip, сжимать можно не только html но и таблицы стилей (css), и скрипты (js). Коэффициент сжатия зависит от содержимого файла и обычно составляет от 30% до 70%. Для повышения эффективности желательно однотипные файлы объединять в один. Объединение также уменьшает количество запросов к серверу, что тоже немаловажно.

для включения gzip в большинстве случаев достаточно добавить в .htaccess:
php_flag zlib.output_compression on


Со стилями и скриптами немного сложнее. Для начала нужно объединить все файлы в один, затем сжать и отдать клиенту с правильным заголовком. Скрипты упрошены до максимума, для автоматической сборки и компрессии на боевом сервере, естественно используются более сложный алгоритмы с кэшированием и контролем версий.
js:
<?
if (extension_loaded('zlib') && !ini_get('zlib.output_compression')) @ob_start('ob_gzhandler');
    header('Content-type: text/javascript;');

    include('set.js');

    include('../wp-includes/js/jquery/jquery.js');
    include('../wp-includes/js/comment-reply.js');
    include('../wp-content/themes/maulnet_epicenter/js/jquery.placeholder.js');
    include('../music/jplayer/jquery.jplayer.js');
    include('../wp-content/themes/maulnet_epicenter/js/common.js');

    include('../wp-content/plugins/wp-polls/polls.js');
    include('../wp-content/plugins/wp-postratings/postratings.js');

ob_end_flush();


css:
<?
if (extension_loaded('zlib') && !ini_get('zlib.output_compression')) @ob_start('ob_gzhandler');
    header('Content-type: text/css;');
    ob_start("compress");

  function compress($data) {
    /* удаляет коментарии */
    $data = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $data);
    /* удаляет табы, пробелы, строки */
    $data = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $data);
    $data = str_replace(array('} ', ' } '), '}', $data);
    $data = str_replace(array('{ ', ' { ', '  {', ' {'), '{', $data);
    $data = str_replace(array('. ', ' .', ' . '), '.', $data);
    $data = str_replace('url("images/', 'url("../wp-content/themes/maulnet_epicenter/images/', $data);


    return $data;
  }

include('../wp-content/plugins/wp-polls/polls.css');
include('../wp-content/plugins/wp-postratings/postratings.css');
include('../wp-content/themes/maulnet_epicenter/pagenavi.css');
include('../wp-content/themes/maulnet_epicenter/style.css');

ob_end_flush();

css можно чуть чуть оптимизировать убрав лишние пробелы и комментарии.

Дольше всего провозился со скриптами, не в какую не хотел работать проигрыватель. Минут за двадцать проблема была решена за одно и размер самого плеера был немного уменьшен. Вызов всех переменных для плагинов из js также был вынесен в отдельный файл так как в теле страницы ему делать нечего.

получили:
Прикрепленный файл  2_debug.png ( 15,22 килобайт ) Кол-во скачиваний: 43

«не школьники» проигрывают 172,9КБ и 9 запросов

Этап третий – графика:
Честно говоря если бы голова не была затуманена вчерашним абсентом, моя реакция была бы намного эмоциональней…
итак:
  • картинка с лентой, бокалом, башней, пепельницей и розами с логотипом весит (барабанная дробь) 519 КБ
  • задник к ней 112 КБ
  • и две фотки между ними еще ~130КБ
  • всего шапка весит: ~760КБ


Много? Да просто ох..ть как. Может это было зачем то нужно? Да вроде нет, контент зафиксирован в контейнере шириной 954px. Возможно было желание создать фишку в плавающих фотках, ну как-то нелепо это организовано: то пол лица башней закрыто и вместо лица цветок, то сигара в ухе и в лицо что то красное вылили. Решено это безобразие убрать и заменить статичной картинкой.

Аналогичная ситуация и с фото Клинта Иствуда (если это он конечно) зачем делать .png с прозрачностью на однородном фоне? Не знаю, исправим.

Ну и на по следок чистим все картинки от мусора с помощью http://developer.yahoo.com/yslow/smushit/

получили:
Прикрепленный файл  3_debug.png ( 15,49 килобайт ) Кол-во скачиваний: 37

«не школьники» проигрывают 884,6КБ что составляет 48,38% и 11 запросов

Этап четвертый – кеширование:
Думаю зачем нужно отправлять файлы в кэш объяснять не кому не нужно. Я хотел выбрал самый легкий путь, и добавил в .htaccess:
ExpiresDefault "access plus 1 weeks"

но для автоматически собранных фалов так не сработает. нужно еще:
ExpiresByType text/css "access plus 1 weeks"
ExpiresByType text/javascript "access plus 1 weeks"

и уменьшит для html до минуты:
ExpiresByType text/html "access plus 1 minutes"

Еще раз повторюсь, это эксперимент и не стоит использовать код в том виде в каком он дан на боевых проектах.
Итог:
Прикрепленный файл  4_debug.png ( 19,83 килобайт ) Кол-во скачиваний: 33


Этап пятый – экстрим:
Такими не хитрыми манипуляциями мы получили максимальный прирост в скорости загрузки. Указанные способы подходят для любой CMS и их реализация не требует каких любо глубоких знаний.
А дальше что? Дальнейшая оптимизация конечно же возможна, но слишком трудозатратна для данной ситуации. Необходимо с нуля переверстать макет и пересобрать всю графику. Выигрыш может составить от 20% до 50% от конечного объема. Так же стоит учитывать что готовых плагинов для WP 2.9 реализующих необходимы функционал нет.

Эпилог:
Зачем мне это? Все невероятно просто, дома я имею возможность использовать очень широкий безлимитный канал (в профили speedtest.net) но я иногда оказываюсь за пределами Московской области, например могу поехать к теще в Калужскую область или к родителям в Ставропольский край а там совсем не редкость скорости в 56000 бит/с. Посчитаете сами сколько кружек чая я успею заварить пока блог Маула изготовленный «профессионалами» полностью загрузится? Эй народ за МКАДом тоже есть жизнь, подумайте о тех 80% населения России которые с грустными глазами ждут по 5-10 минут загрузки каждой страницы. Они не в чем не виноваты...

p.s. если Маул разрешит я выложу полученный результат на сервер и вы сами сможете попробовать что получилось.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
15
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
medved112
medved112
сообщение 26.12.2009, 11:26; Ответить: medved112
Сообщение #2


Пока не читал, самая главная строчка:
Эй народ за МКАДом тоже есть жизнь, подумайте о тех 80% населения России которые с грустными глазами ждут по 5-10 минут загрузки каждой страницы. Они не в чем не виноваты...


--------------------
фыр фыр


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
viitalik
viitalik
сообщение 26.12.2009, 12:08; Ответить: viitalik
Сообщение #3


webpavilion отличная работа! ... Вот например сейчас пробовал загрузить блог, чтобы достать "интересное" высказывание Маула, и после загрузки основного текста, нажал на СТОП страница, надоело ждать. У меня скорость 256кб/c..
Эй народ за МКАДом тоже есть жизнь, подумайте о тех 80% населения России которые с грустными глазами ждут по 5-10 минут загрузки каждой страницы. Они не в чем не виноваты...



webpavilion как считаете в IE 6 нормально будет работать в вашем варианте? Или же это уже от вёрстки зависит?

Сообщение отредактировал viitalik - 26.12.2009, 12:14


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
desoto
desoto
сообщение 26.12.2009, 12:15; Ответить: desoto
Сообщение #4


Скорость 256. Блог загружен, шапка - нет. Ну и не важно. Вы на блог приходите шапку посмотреть, или почерпнуть для себя инфу? Контент загружен и ладно.

Сообщение отредактировал desoto - 26.12.2009, 12:16
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
viitalik
viitalik
сообщение 26.12.2009, 12:18; Ответить: viitalik
Сообщение #5


desoto ну действительно, и плевать что выкинули 2к зелени за такой диз, и правда же? ... Моё мнение за 2к там всё должно было летать!

Сообщение отредактировал viitalik - 26.12.2009, 12:18
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
desoto
desoto
сообщение 26.12.2009, 12:20; Ответить: desoto
Сообщение #6


(viitalik @ 26.12.2009, 11:18) *
desoto ну действительно, и плевать что выкинули 2к зелени за такой диз, и правда же? ... Моё мнение за 2к там всё должно было летать!

С Вашим мнением согласен, но это уже другой вопрос. Потерял Маул, не у пользователей же отняли эти деньги.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
Topic Starter сообщение 26.12.2009, 12:56; Ответить: webpavilion
Сообщение #7


(viitalik @ 26.12.2009, 11:08) *
webpavilion как считаете в IE 6 нормально будет работать в вашем варианте? Или же это уже от вёрстки зависит?

Поддержка IE6 нужна в достаточно редких случаях и очень зависит от аудитории. Маул прав его блогу IE6 ненужен совсем, посмотрите сами:
Прикрепленный файл  LI.png ( 24,07 килобайт ) Кол-во скачиваний: 12

(desoto @ 26.12.2009, 11:20) *
Потерял Маул, не у пользователей же отняли эти деньги.
пользователи тоже платят за мегабайты и минуты.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
desoto
desoto
сообщение 26.12.2009, 13:43; Ответить: desoto
Сообщение #8


пользователи тоже платят за мегабайты и минуты.

Не буду говорить за всех, но если судить по той картине, что у меня, то шапка загружается в последнюю очередь, а значит просто можно прервать её загрузку и потерь 0.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
Topic Starter сообщение 26.12.2009, 17:05; Ответить: webpavilion
Сообщение #9


(desoto @ 26.12.2009, 12:43) *
Не буду говорить за всех, но если судить по той картине, что у меня, то шапка загружается в последнюю очередь, а значит просто можно прервать её загрузку и потерь 0.

вам проще тогда отключить css и графику, тогда останется только контент. wink.gif
а в обще пост не о том совсем...


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Highlook
Highlook
сообщение 26.12.2009, 17:13; Ответить: Highlook
Сообщение #10


webpavilion, молтчага. У меня хоть и мегабит, грузится достаточно долго. А делов-то...


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
4 страниц V   1 2 3 4 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Бесплатный SEO анализ сайта по 26 параметрам!
Программный анализ вашего сайта
49 wp01 25274 20.3.2023, 15:35
автор: wp01
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБесплатный SEO анализ сайта по 26 параметрам!
48 wp01 22320 20.3.2023, 15:34
автор: wp01
Открытая тема (нет новых ответов) Аудит сайта от 1900 руб, технический, юзабилити, анализ конкурентов, другие seo услуги
0 про100та 1153 22.7.2022, 23:26
автор: про100та
Открытая тема (нет новых ответов) Анализ конкурентов, помощь в семантике. Данные из Spywords
Выгрузки по вашим пожеланиям
0 Infra 7213 7.6.2020, 18:39
автор: Infra
Открытая тема (нет новых ответов) Нужен анализ конкурентов
И выгрузка статей
1 Kiloan_Frost 7516 5.4.2020, 14:49
автор: WebSniper


 



RSS Текстовая версия Сейчас: 25.4.2024, 7:36
Дизайн