K900 14.07.2011 22:20

welinuxПравда про оптимизацию

Ответ на предыдущий пост юзера kraplax.

А теперь давайте посмотрим, кто и в чем виноват. По пунктам.
Используйте кэш браузера
Вот кто у нас его не использует:
http://site.yandex.net/i/form/search.png (не указан срок истечения действия)
http://site.yandex.net/i/form/yandex-hint.png (не указан срок истечения действия)
http://mc.yandex.ru/metrika/watch.js (60 минут)
http://pagead2.googlesyndication.com/pagead/show_ads.js (60 минут)
http://feeds.feedburner.com/~fc/welinux?... (2 часа)
http://www.google-analytics.com/ga.js (2 часа)
http://pagead2.googlesyndication.com/.../abg-ru-100c-000000.png (24 часа)
http://pagead2.googlesyndication.com/.../expansion_embed.js (24 часа)
http://pagead2.googlesyndication.com/pagead/sma8.js (24 часа)

Оказывается, что вилинукс тут вообще ни при чем, потому что код счетчиков поменять нельзя. Забавно то, что в списках числится и созданный самим Гуглом Analytics.
Уменьшите число переадресаций
И снова уже знакомые нам http://counter.yadro.ru/ и http://mc.yandex.ru/
Отложите синтаксический анализ JavaScript
http://welinux.ru/media/CACHE/js/43e6f3a12fff.js не изучал, сказать не могу, пусть разъяснит exelens или nvbn. А вот остальное - все те же счетчики.
Используйте асинхронные ресурсы
Разместите CSS в заголовке документа
И опять Google Analytics.
Укажите валидатор кэша
Удалите строки запросов из URL статических ресурсов
А тут у нас скрипт FeedBurner, и опять чужие ошибки сказываются на скорости самого сайта.
Укажите заголовок Vary: Accept-Encoding
В основном счетчики, а раз они уже ломают, то можно ничего не трогать :)

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


Тэги: 0byte Welinux Оптимизация
+ 4 -
Похожие Поделиться

shisoid 14.07.2011 23:29 #
Используйте кэш браузера
коайне неудобная хрень:
при возврате на страницу я получаю без него страничку в текущем состоянии, а не какой она была ранее
при хорошем канале страничка загружается быстрей, чем оная найдётся в кэше
итого: выпилил нахрен сие непотребство
nvbn 15.07.2011 00:43 #
Бред, чтоб получить страничку сначала дёрнется dns либо его кэш, потом запрос к серверу, далее будет загрузка и только после этого отображение.
В случае с кешем путь намного короче и быстрее)
shisoid 15.07.2011 02:06 #
не будет быстрей
проверял же
nvbn 15.07.2011 02:13 #
И в каком же чудесном браузере наблюдается такое поведение?)
shisoid 15.07.2011 02:18 #
в хромиуме, например
nvbn 15.07.2011 06:58 #
Тогда это скорее всего не кэш тормоз, а что-то нехорошее с фс/жд/оперативкой.
shisoid 15.07.2011 14:21 #
с этим всё хорошо
да, фанатиков тут куча
DropSQL 21.07.2011 04:44 #
ты сам себе противоречишь :)
с железом у тя всё норм, но с инета загрузить быстрее чем с жесткого диска? :)
То есть ты хочешь сказать что скорость чтения (приблизительно) 300 мбит без задержек особых работает медленнее чем твой интернет с учетом всех шлюзов? :)
xT 15.07.2011 02:27 #
а еще при большом количестве ресурсов (картинок, js,css), которые не сохраняются в браузерном кеше, эти самые ресурсы будут запрашиваться каждый раз с сервера, внося этим задержки ибо браузер не запрашивает\загружает все одновременно.
xT 15.07.2011 02:35 #
хз хз.
только что замерил время загрузки глагне в FF с выключенным и включенным браузерным кешем (about:config - network.http.use-cache):

выключено - 1.5-1.9 секунды
включено - 900мс-1.2 секунды
shisoid 15.07.2011 03:02 #
интересно - это как мерил?
всмысле чем
xT 15.07.2011 12:27 #
фаербагом
iglezz 15.07.2011 17:21 #
> Используйте кэш браузера
>> коайне неудобная хрень:

Ога, особенно на галимом gprs...
shisoid 16.07.2011 00:57 #
я про нормальный канал
и да - мне не нужна старая страница
мне нужна новая
так-то
Dark_SS 18.07.2011 15:59 #
Кэп намекает, что новая страница не должна быть при нажатии "Назад".
Dark_SS 18.07.2011 16:25 #
Новую страницу можно легко получить, нажав обновить. А как получить именно ту, что была, когда её просматривали?
DropSQL 21.07.2011 04:46 #
"обновить" по моему тоже не загружает на 100% новую страницу, а по запросу юзает кэш.
Если нужно новая страница то нужно обновлять принудительно (в FF ctrl+F5).
Как-то так :)
Dark_SS 21.07.2011 07:57 #
В опере "обновить" - это как раз обновить, без кеша, да.
shisoid 18.07.2011 19:59 #
настоящий Кэп намекает - лишние телодвижения ты описал
ман юзабилити, что ли
Dark_SS 18.07.2011 20:09 #
Юзабилити в ущерб функциональности плюс возможность потерять важную информацию?.. - Нет, спасибо.
shisoid 18.07.2011 20:27 #
понятно - не пробовал, но осуждаю
Dark_SS 18.07.2011 20:32 #
Пробовал я. Меня раздражает [новая страница не должна быть при нажатии "Назад"], а иногда очень сильно расстраивает [плюс возможность потерять важную информацию], когда при нажатии "назад" я вижу не то, что было там раньше (если, например, страничка уже выкинута из кеша). Если вам никогда не были нужны сведения с посещённых страниц, то не надо клеймить тех кому они нужны. Это как раз и выглядит как
понятно - не пробовал, но осуждаю
shisoid 18.07.2011 20:52 #
ты опять всё перепутал
кэш искаропки есть
так что я не попробовать его никак не мог, оха!?
а мне вот неинтересно старая версия из кэша
тем более у меня навигация вся на мыше (кнопочков много)
потому кэш меня бесит ещё больше - ннажать 1 кнопочку или 2, есть разница, не находишь!?
Dark_SS 18.07.2011 21:05 #
Я понимаю, что вы то, что удобно вам, называете единственно правильным.
shisoid 18.07.2011 21:53 #
я сказал от своего лица, не?
Dark_SS 18.07.2011 21:58 #
От своего: "Кеш не нужен, потому что мне нужна новая страница."
shisoid 18.07.2011 22:02 #
коайне неудобная хрень:
при возврате на страницу я получаю без него страничку в текущем состоянии, а не какой она была ранее

....
итого: выпилил нахрен сие непотребство

я говорил за себя, не находишь!? ;)
DropSQL 21.07.2011 04:49 #
Вот пример решения твоего вопроса на индивидуальном уровне! :)
DropSQL 21.07.2011 04:53 #
или это, а вообще поисковые системы юзаем :)
shisoid 15.07.2011 00:36 #
сколько тут зомбированных:
1. показать лицо боятся
2. обосновать мнение не могут
3. оспорить моё тоже не могут
только минисуют
не мужики!
тьфу
xT 15.07.2011 02:13 #
дык ты вроде и сам ничего не обосновал, только утверждал что-то
shisoid 15.07.2011 02:18 #
именно
только несогласные и возразить ничего не могут
ner_uto 15.07.2011 09:41 #
Так что тебе возражать, если ты сам вбросил, а обосновать вброс забыл.
nvbn 15.07.2011 00:47 #
Счётчики и дёргалки апишек не могут использовать кэш. Это же не просто скрипты, там дёргается сервер, а он модифицирует скрипт и вносит изменения на сервер.

CSS-спрайты для картинок

Тут картинок мало, и в основном это аватарки, а делать спрайт для аватарок - очеь жирный оверхед.

сжатие HTML

Используется.
K900 15.07.2011 09:21 #
Аватарки не надо, а вот мелкие значки можно.
blackraven 15.07.2011 14:17 #
Про картинки не в спрайтах он (сервис) подробно говорит, какие именно картинки было бы неплохо объединить, и там нет аватарок:

1
2
3
4
5
6
7
http://welinux.ru/media/style/document.gif
http://welinux.ru/media/style/documents.gif
http://welinux.ru/media/style/figure.gif
http://welinux.ru/media/style/rgt.png
http://welinux.ru/media/style/rwt.png
http://welinux.ru/media/style/sb.png
http://welinux.ru/media/style/speech_bubble.gif


Про сжатие HTML - я так понимаю, ему не нравится огромное количество пробелов/переводов строк в HTML-коде на глагне. Их убрать было бы неплохо. Правда, я не очень знаю, как это вылечить в джанге. Для сервлетов, например, есть специальный фильтр, подключаемый в томкате, режущий все лишние пробелы и переводы строк.
nvbn 15.07.2011 18:16 #
Сделай спрайт и переверстай под него, чё =)
blackraven 15.07.2011 18:50 #
Со своими бы разобраться...
Там кстати делов-то на 30 минут.
Да и пробелы тоже думаю довольно легко решаются.
K900 18.07.2011 22:36 #
Получено из генератора, но вообще должно сработать :)
1
2
3
4
5
6
7
.sprite-document{ background-position: 0 0; width: 13px; height: 16px; } 
.sprite-documents{ background-position: 0 -66px; width: 13px; height: 15px; } 
.sprite-figure{ background-position: 0 -131px; width: 11px; height: 15px; } 
.sprite-rgt{ background-position: 0 -196px; width: 9px; height: 31px; } 
.sprite-rwt{ background-position: 0 -277px; width: 9px; height: 31px; } 
.sprite-sb{ background-position: 0 -358px; width: 9px; height: 8px; } 
.sprite-speech_bubble{ background-position: 0 -416px; width: 14px; height: 14px; }

Ну и добавить
1
background: url(csg-4e247c803d759.png) no-repeat top left;

Собственно спрайт
nvbn 18.07.2011 22:45 #
Ок, на выходных попробую прифигачить)
blackraven 21.07.2011 16:20 #
Че-то не помню - а осел 6й понимает background-position?
K900 21.07.2011 16:28 #
А кому он нужен? :)
predator 21.07.2011 21:24 #
а зачем пустое пространство между картинками в спрайте?
K900 21.07.2011 21:29 #
А хз.
kstep 21.07.2011 21:31 #
А затем, что если они будут вставляться в какой-нить див, по размерам больше иконки, а иконки будут идти вполтную, то будет видна не только нужная иконка, но и соседние.
predator 20.07.2011 19:45 #
про лишние пробелы +1
это django виновата? в RoR таких проблем нету - можно убрать все лишние пробелы
blackraven 21.07.2011 16:18 #
Да, похоже что джанга - проверил у себя, у меня тоже куча строк пустых.
Похоже, что на каждый template-тег ставится по переводу строки (ну, как минимум это так, если эти теги стоят на отдельной строке).
Такая же фигня есть в JSP и сервлетах, но там я это легко фиксил с помощью специального фильтра.
divius 28.07.2011 14:16 #
Не знаю, как шаблоны в джанге, а в jinja2 (вроде как, аналогичный движок) есть такая фишка: если в их тэгах вместо {% ... %} ставить {%- ... -%}, то пробелы исчезнут.
exelens 15.07.2011 16:39 #
Друзья, только 1 мне кажется, что Вам просто заняться нечем?
blackraven 15.07.2011 18:54 #
Собственно, народ дело говорит. Как минимум спрайты снижают нагрузку на сервер в первую очередь, уменьшая количество запросов.
Никто ж не обвиняет разработчиков, что они это намеренно недоделали.
Astramak 18.07.2011 14:23 #
Вы что, апачем пользуетесь? :)
K900 18.07.2011 14:53 #
А вы нет? Реквестирую статью про техническую часть вилинукса :)
Astramak 18.07.2011 14:55 #
Это все равно что есть с пола отбросы, когда перед вам стол напичканный деликатесами :)
Те более у нас тут не сайт про то как завязывать шнурки модно, про линукс все-таки
nvbn 18.07.2011 22:42 #
Nginx + django по fastcgi - вот и вся статья)
blackraven 18.07.2011 17:44 #
А что, только апач обрабатывает запросы? Уменьшение числа запросов благоприятно для любого сервера, будь то нгинкс, апач или SimpleHTTPServer.
iglezz 15.07.2011 17:29 #
В общем, из сего поста вынес основную идею - счётчики и дальше надо блокировать, ибо сие есть тормозящее загрузку страниц непотребство (с точки зрения конечного пользователя (как минимум меня :))).
alvelin 19.07.2011 15:51 #
Вы таки будете смеяться, но простая минификация html-а тоже кое-что дает в плане роста скорости загрузки страницы.