Стоит ли заниматься скоростью загрузки сайтов?

02.03.2008

Разработка сайтов — это море рутины. Но есть в нем островки, которые выглядят интересно и свежо. Одним из таких островков для меня является увеличение скорости загрузки страниц. Во-первых, при решении подобных задач результат заметен невооруженным взглядом. Во-вторых, оптимизация — всегда небольшое расследование, которым занимаешься с удовольствием. Потребность в творчестве реализуется.

CMS и фреймворки сейчас в моде. Обычно их создатели осознанно идут на ухудшение производительности, стремясь к универсальности. Нормальная тенденция — железо совершенствуется, интернет ускоряется. Как следствие, современные сайты можно очень здорово разгонять. У меня впечатление, что ускорить загрузку среднего сайта можно в 2--3 раза.

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

Из моего опыта пользования интернетом, скажу, что обращаю внимание только на крайности: либо на сильные тормоза, либо на молниеносную загрузку. При этом 95 % сайтов работают на обычной неспешной скорости. И ничего.

Единственная ситуация, когда медленная загрузка отвращает меня от сайта, — это ситуация с тяжелыми форумными движками на плохих хостингах. В этом случае сайт теряет пишущих посетителей, а это действительно серьезно.

Быстрая загрузка в подавляющем большинстве случаев — это приятый, но бесполезный бонус. Если у вас есть на эту тему какие-то опровергающие истории, буду рад услышать. Потому что хочется проверить рецепты с сайта webo.in и некоторые модули Drupal. И хочется, чтобы это была не просто игра или фетиш.

Комментарии

ACID Jesus, 02.03.2008 19:50

Как будут реальные примеры реального ускорения (а не просто тестов), да ещё и если с выводами что реально повлияло это на посетителей (увеличился из-за этого траф, пошли хвалебные отзывы по этому поводу и т.д.) - пиши - с удовольствием почитаем ;)

pifagor_mc, 02.03.2008 23:27

ускорение загрузки,действительно,малозаметный,но все-таки бонус,и по возможности необходимо оптимизировать проекты,ведь они нацелены на юезра,и юзер всегда прав,имхо)

Артём Курапов, 03.03.2008 00:07

Заниматься оптимизацией имеет смысл когда у сайта большая посещаемость - от 10 тыс посетителей в сутки, т.е. новый посетитель каждые 8 секунд.
В остальном важна скорость разработки.

deerstop, 03.03.2008 00:29

Господи, а по тестам IE получается самым быстрым браузером.)

Katoka, 03.03.2008 04:46

Дмитрий, понравился ваш скептицизм. По-моему, тоже: усилия можно приложить к более существенным параметрам, когда скорость примемлемая и не раздражает посетителей и поисковых роботов.

Более того: если сайт делается для аудитории какого-то конкретного региона, то нужно учесть и проникновение широкополосного интернета. Если на сайт будут ходить в основном люди из небольшого городка, то вряд ли они оценят плоды тонкой оптимизации: узким местом будет их канал.

Дмитрий Сергеев, 03.03.2008 10:50

Узкий канал тоже можно победить -- есть mod_gzip, который архивирует ответы сервера, и есть современные браузеры, которые эти ответы понимают. Можно оптимизировать размер отдаваемых html, css и js. Можно графику оптимизировать, можно использовать ajax. Можно управлять кешированием на клиенте. Можно банально уменьшить объемы содержимого страниц (избавиться от портянок в боковых колонках).

То есть говоря об оптимизации, я говорю не только об оптимизации серверного кода и sql.

AlexTC, 03.03.2008 14:02

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

Дмитрий Сергеев, 03.03.2008 14:12

Ну а если выигрыш в два раза? ;)

AlexTC, 03.03.2008 14:37

Вы вероятно меня не совсем поняли.

Есть люди которые радуются от того что их сайт по всяким там бенчмаркам на 7% грузится быстрее нежели у конкурента (при этом посещаемость средняя или желает лучшего).

Речь не шла о 50% увеличении скорости.

Так вот на малопосещаемом ресурсе 7% прироста малозаметно, а вот когда к вам ломится до 5000 пользователей в минуту вот тогда эти ничтожные проценты играют существенную роль.

Такие выводы делаю не с потолка, а на основе реальных ситуаций.

Дмитрий Сергеев, 03.03.2008 15:07

Возьмем сайт с посещаемостью 1000 человек в сутки. Сервер вполне справляется. Есть возможность ускорить загрузку страниц вдвое. Как по вашему, существуют ли ситуации, при которых имеет смысл этим заниматься?

ogonkov, 04.03.2008 14:37

по-моему если есть возможности, то их нужно использовать, м?)

Дмитрий Сергеев, 04.03.2008 14:48

Так есть много способов потратить время на развитие сайта. Хочется наоборот минимизировать лишние движения.

AlexTC, 03.03.2008 15:37

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

Наличие запаса "прочности" лучше, чем когда его отсутствие.

Ваша оптимизация это работа на перспективу. При любом раскладе, уменьшение времени загрузки в ДВА раза это есть ХОРОШО.

Дмитрий Сергеев, 03.03.2008 15:49

С точки зрения запаса прочности это имеет смысл, конечно. Например, если ссылка попадет на дигг, чтобы сайт не упал (или упал не так сильно :).

Но если шансов попасть на дигг немного, то серьезных причин ускорять сайт нет.

AlexTC, 03.03.2008 15:39

По поводу конкретных ситуаций.
Если ожидается плановое увеличение посещаемости тогда обязательно нужно оптимизировать.
Мне кажется это и так должно быть понятно.

AlexTC, 03.03.2008 15:56

Если сервер и так выдерживает нормально, а оптимизация тянет за собой много гемороя, тогда это просто фетишизм.

Есть еще масса нюансов, но в целом свою точку зрения я высказал.

Александр Кучеренко, 04.03.2008 14:08

Я считаю, что интернет-трафик у нас в стране очень дорогой, а интернет очень медленный. Исходя из этого, считаю обязательным оптимизировать сайт с целью повышения его скорость загрузки и экономии трафика посетителей сайта.

Лично мне неприятно, когда я захожу на сайт, а он одной своей страницей высасывает мегабайты моего трафика (за которые я буду платить), только потому, что разработчику этого сайта было лень немного задуматься и сделать все как надо. Особенно раздражают флэш-сайты/заставки/элементы, сделанные по большей части недалекими людьми. Мало того, что они использует флэш на сайте, так они еще используют самые последние версии флэш для сборки своих “произведений”, что вынуждает посетителей сайта скачивать и устанавливать самые последние флэш-плагины на свой компьютер. Так что я в корне не согласен, что оптимизация сайта это всего лишь какой-то там “бонус”. Это очень важный показатель уважения владельца сайта ко времени и деньгам посетителей своего сайта.

Дмитрий Сергеев, 04.03.2008 14:42

Спасибо, в этом что-то есть. У меня как появился безлимитный интернет, я тут же забыл про 2 рубля за мегабайт и про то, как ходил с выключенными картинками, и про то, как огорчали непредвиденные страницы на несколько мегабайт.

Глядишь, и наберется доводов в пользу оптимизации обычных сайтов.

sunnybear, 05.03.2008 21:40

Спасибо, что подняли тему оптимизации. Мой взгляд на текущую проблему: оптимизировать надо. В первую очередь так, чтобы грузилось в 3-5 раз быстрее (http://webo.in/about/results/ -- здесь конкретные примеры). А дальше -- уже по желанию.

Примерно 90% сайтов можно ускорить раза в три, а если у низ многомиллионная посещаемость, то затраты, потраченные на оптимизацию (быстродействия, а не SEO), окупятся с лихвой.

Если будут вопросы, можно задавать по n2ck@mail.ru или 138109649

Дмитрий Сергеев, 05.03.2008 22:26

Спасибо за ссылку, пропустил. Действительно вдохновляет на подвиги :)

druns, 05.10.2008 01:48

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

Дмитрий Сергеев, 05.10.2008 12:17

>> с недавних пор разбираюсь с друпалом, рездражает скорость загрузки... подскажите практическое решение?

Поставьте модуль devel -- он покажется сколько времени на что тратится при генерации страниц. Еще попробуйте кеш включить в настройках Друпала.

zuborg, 12.10.2008 18:06

Скорость загрузки очень важный параметр для людей которые на своих сайтах делают деньги. Особенно в адалт-бизнесе.
Больше задержек - меньше дохода.
У гугла заглавная страничка когда-то в один tcp-пакет помещалась :)

Я бы ещё порекомендовал этот онлайн-сервис для проверки скорости загрузки сайта - http://site-perf.com/

Поддерживает кучу фич, типа http-компрессия и keep-alive, есть возможность выбирать откуда делать тест, симпатичная диаграмма загрузки...

Кроме того тулза может оценить качество интернет-канала сервера (уровень потерь пакетов и задержки)

GrAndSE, 18.10.2008 01:22

Как показывает практика, скорость загрузки критична только для проектов с очень большой посещаемостью. Например, социалки. Или же сайты представляющие сложные поисковые функции (тут сокрее не загрузка самой страницы, а оптимизация скорости обработки поискового запроса). Был на практике случай, когда производительность одного запроса удалось повысить в несколько раз. Хотя сначала всё было "не критично", пока количество записей в БД не перевалило за 150 тыс. Хотя конечно использовать полновесный javascript фреймворк в 90Кб для одного эффекта на сайте весьма нелогично, но тратить несколько лишних месяцев на разработку "сверхоптимизированной системы" скорее всего не стоит. Разве, что в несколько этапов:
1. Написать функционал, запустить проект, начать работу и раскрутку.
2. Пройтись по проекту, оптимизировать там, где не это не стоит больших затрат.
3. Ловить узкие места на основе использования пользователями проекта, решать проблемы с этими горлышками.
4. Добавлять новый функционал и возвращаться к пункту 2.
Но изначально, такой подход требует проектирования системы с расчётом на возможные изменения. А это зачастую легче сделать с применением паттернов проектирования, которые уже реализованы в каких=либо фреймворках в той или иной мере.
Хотя от джумлы я отказался наотрез в текущем проекте хоть и было таоке предложение: пришел к решению, которое со старта работает в пять-семь раз быстрее джумлы (это когда в джумле нет ни одного нестандартного модуля), требует меньше мусора в файлах и т.д.