Web Optimizer — инструмент для всеобщей оптимизации (теперь и Drupal 5)

25 марта 2009 в 11:25

Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). В качестве базы для Web Optimizer использовался PHP Speedy.

В результате кропотливой работы после последнего «большого» выпуска было исправлено большое число заявленных ошибок и добавлено просто масса новых возможностей.

Итак, по порядку

  • Добавлено автоматическое изменение исходного index.php в корне сайта. Последняя сборка протестирована на Drupal 6, Joomla 1.5, Wordpress 2.7 (а также на некоторых самописных системах) — все работает корректно.
  • Проверено и исправлено слияние CSS-файлов различных media в один итоговый.
  • Добавлена поддержка включения внешних CSS- и Javascript-файлов в общую сборку (желательно использовать как альтернативу для подключения «ненавязчивого» Javascript). При этом весь Javascript-код в head страницы (как внешние файлы, так и сам код) объединяется в один внешний файл в порядке нахождения в документе. Внешние файлы загружаются раз в сутки, а не при каждом запросе к странице. По умолчанию отключена. Большое спасибо за содействие quard.
  • Добавлена возможность «удалить» Web Optimizer (доступна после успешной установки при наличии соответствующих прав). Теперь все действия можно осуществлять через веб-интерфейс.
  • Логика создания CSS Sprites существенно уточнена (спасибо xstroy) и добавлена возможность создания полноцветных спрайтов как в JPEG, так и в PNG (по умолчанию используется второй формат).
  • Произведены дополнительные уточнения в механизме вычисления директорий на сервере (в том числе для Denwer и PHP как CGI-модуля), устранены ошибки с «битым» CSS-файлом.
  • Исправлена пара ошибок в модуле CSS Tidy и мелкие проблемы, с ними связанные.
  • Немного доработана логика установщика, чтобы быть более ясной и прямолинейной.
  • Внесено ряд корректив в исходный код для устранение замечаний и предупреждений при выполнении (спасибо xandrx).

В планах на ближайший релиз

  • Добавить автообновление (на основе данных из SVN).
  • Улучшить вычисление директорий, чтобы можно было безопасно устанавливать Web Optimizer в произвольную папку.
  • Протестировать приложение еще на 10-15 наиболее популярных CMS.
  • Создать логику миниустановщика (один-единственный файл, который загружает все приложение).
  • Подключить альтернативные методы сжатия CSS- и Javascript-файлов (YUI, Packer).
  • Добавить наконец возможность локализации Smile

Ссылки

Подробное руководство по установке
Загрузить версию 0.3

Комментарии

Аватар пользователя Atl Atl 0

Тестил. Прирост скорости существенный, но не работает Collapsiblock из набора Javascript Tools (для 5-ки).

Заработало при:
Все - Yes, Minify Options (minity javascript - No).
Р-а-б-о-т-а-е-т!

Страницы открываются практически моментально (до 99%, и чуть пауза - остальное).

27 марта 2009 в 0:49

отключила в производительности склейку цсс и Aggregate JavaScript
получилось 65 запросов, из них 13 цсс;(((
8 яв, из них 4 гугля, опцию объединения сторонних яв ставила
6 секунд, загрузилось 156 кб, обычно около 220,
и еще выдает ошибку
Fatal error: Call to undefined function drupal_get_normal_path() in /storage/home/srv13178/htdocs/514/modules/boost/boost.module on line 13

3 апреля 2009 в 1:58

отключила конечно, с ним вообще только белый экран с ошибкой. это я просто к тому, что с Boost не работает
JSMin тоже, пришлось отключить, ошибку выдает

ночью домучила до 14 запросов, половина грузилась из кэша, в скобках было написано, как в обучалке
сегодня снова 64 запроса и все 325 кб. грузятся даже с включенным сжатием цсс и сриптов;( а с выключенными 75 запросов, вес тот же.
странно...
в файрбаге web-optimizer/cache/yass.loader.js грузится 6 строкой снизу. может поэтому? как изменить я не знаю

сейчас отключила - запросов и кб столько же сколько со включенным

3 апреля 2009 в 11:56

FAQ 1 по Web Optimizer

Загрузить Web OptimizerДобавление DLE в список поддерживаемых систем вызвало бурный отклик (мною замечено порядка 5 новостей на различных про-DLE сайтах), поэтому ниже постараюсь ответить на несколько наиболее распространенных вопросов.



1. Web Optimizer платный проект?

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



2. Web Optimizer от гугла?

Нет, проект разрабатывается группой активистов (прямо или косвенно связанных с webo.in). Google Code — просто хостинг для файлов и SVN, почти что narod.yandex.ru. Вы же сайты на Народе не называете проектами Яндекса, правда?



3. Web Optimizer грузит сервер?

Нет, проект разрабатывается с учетом самых высоких требований к производительности. Наоборот, при правильной настройке сервера нагрузка только уменьшится. Давайте рассмотрим такой случай: на странице у нас находится 3 файла стилей и 5 файлов скриптов. Средний посетитель просматривает за присест 3 страницы. Web Optimizer создаст 1 файл скриптов и 1 файл стилей. При загрузке каждой страницы данные файлы будут только проверены на существование (это менее ресурсоемко, чем их отдача пользователю). За счет клиентского кэширования данные файлы будут запрошены пользователем только при первом заходе на сайт. Итого имеем выигрыш на каждого пользователя в:

(3 + 5) * 3 — (2 + 2 * 3 *~0,2) ~= 20 запросов к серверу.

Налицо явное преимущество.



4. Фигня полная?

Нет, не полная :). Проект разрабатывается отечественными разработчиками и по функциональности не имеет аналогов в мире. При правильной установке и настройке способен обеспечить ускорение сайта порядка 10 раз. Обычно это 3-5 раз.



5. После установки возможны ошибки?

Да, естественно. Поскольку приложение некоммерческое, то тестами покрыты далеко не все случаи. Если у вас возникли проблемы в ходе или после установки, то стоит запостить их сюда

http://code.google.com/p/web-optimizator/issues/list

они будут довольно быстро решены (при воспроизводимой по описанию ошибке).



6. Сколько гугл запросил за скриптик?

Пока предложений от гугла не поступало Smile



7. Куда и зачем он лезет?

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

http://code.google.com/p/web-optimizator/wiki/Welcome

Если совсем кратко, то Web Optimizer перехватывает выводимый HTML от серверного движка, оптимизирует его (создает кэшированные версии необходимых файлов) и отдает в браузер уже полностью «перелопаченным» (на данный момент изменяется только head-секция + при наличии параллельных хостов меняются пути к ним в самом документе).



8. Многа букв!

Здесь все описано намного подробнее:

http://webo.in/articles/

http://speedupyourwebsite.ru/books/speed-up-your-website/online/

если будет желание, можно значительно увеличить свой багаж знаний о клиентской оптимизации



9. Лень раздолбиватся с настройками...

Настройки по умолчанию конфигурируется для оптимальной производительности при установке приложения. Сам Web Optimizer спроектирован таким образом, чтобы не перегружать ненужной информацией (есть режим «Быстрой установки»). Также доступны опции «Изменение настроек», «Обновление», «Очистка кэша» и «Удаление».



Если есть еще вопросы — можно задать в приват, комментариях или по

http://webo.in/contacts/

24 мая 2009 в 11:17

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

10 сентября 2009 в 23:49
Аватар пользователя Dan Dan 0

"sunnybear" wrote:
если бы кто помог разобраться со структурой модулей в Drupal

Чем смогу - помогу. Обращайся! Проект нужный, надо сделать Smile

12 сентября 2009 в 1:57

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

12 сентября 2009 в 19:28

Объясните кто-нибудь,чем это кардинально лучше ядерному "включить слияние стилей",модулю javascript_aggregator и кеша?

Упоминаются спрайты,которые можно без проблем можно сгенерировать при помощи онлайн-сервисов

12 сентября 2009 в 23:16

О! Круто а у меня 0.3 уже год стоит, Страницы, разумеется открываются резче. насчет нагрузки - не знаю.

30 сентября 2009 в 8:18

MDinc wrote:
Все что могли они уже придумали

Далеко не все

MDinc wrote:
Он просто достиг апогея а теперь надо отбивать затраченные деньги

Нужны деньги на развитие проекта, а не на "отбитие". Сейчас продукт находится "на нуле", чтобы его кардинально улучшить, нужны дополнитльные вливания, которые и будут получены от платной версии. Бесплатная-то никуда не уйдет.

MDinc wrote:
Я так впринципе и полагал так как на рекламе они бабки не отбили

Рекламы никакой не было, откуда Вы ее взяли?

Потенциал у продукта огромной: это, в первую очередь, оптимизация серверной нагрузки и обработка множества "тонких" ситуаций. Это лицензирования продукта для разработчиков и создание модулей под все распространенные CMS. Всего не перечислишь. Если суслика не видно, это ведь не значит, что его нет? Если кто-то хочет тестов производительности, то давайте проведем их на каком-нибудь сайте на Drupal (только, по возможности, реальном или копии реального). Там сразу будет видно, на что Web Optimizer способен, какую дает нагрузку (и откуда вы ее берете? Все файлы кэшируются, алгоритмы проверки отрабатывают значительно быстрее, чем обычные десятки запросов в базу при открытии страницы, единственная задержка возникает при первом просмотре страницы, когда надо файлики в кэше создать), какой прирост, и насколько лучше текущих CSS/JS-аггрегаторов "из коробки".

Это комплексное решение, которое экономит ваше время. Хотите каждый выполнять десятки и сотни рутинных действий (писать .htaccess, прикручивать модули, оптимизировать темы) - пожалуйста. Но ведь все это можно сделать "за 5 минут".

Да, у продукта теперь свой сайт

30 сентября 2009 в 19:39
Аватар пользователя Dan Dan 0

"sunnybear" wrote:
Да, у продукта теперь свой сайт

Молодцы, отличный проект!

Как там продвигается модуль для друпал? Нужна ли помощь? Надо его сделать! Smile

По поводу тестов - идея хорошая. Надо их сделать и можно будет Вам пропиариться на друпал-конф в конце ноября - прочитать доклад на эту тему. Что думаете по этому поводу?

PS: Понятно, что модуль и тесты для участия в конференции совершенно не обязательны, но могут быть очень кстати.

1 октября 2009 в 1:03

Теперь Web Optimizer доступен как плагин к Wordpress, Joomla! 1.5, Joomla! 1.0. Работаем над интеграцией в Drupal и Bitrix. Все плагины работают одинаковым образом: оборачивают функционал Web Optimizer в системные вызовы и интерфейсы.
http://habrahabr.ru/blogs/web_optimizator/71238/

Твиттер проекта: http://twitter.com/wboptimizer

2 октября 2009 в 11:09

Модуль я вроде собрал (после Wordpress/Joomla это произошло очень быстро :). Можно покопать здесь
http://code.google.com/p/web-optimizator/downloads/detail?name=drupal6-w...
Пока страницы настроек нет, добавлю в ближайшие дни. Настройки через файл web-optimizer/config.webo.php нужно править (хотя там права от веб-сервера...). В любом случае, включается и отключается на отлично Smile

Да, еще один вопрос. Что писать в package?

P.S. Прикрутил изменение настроек. Там теперь только обновления и очистки кэша не хватает вроде (из функций общего пакета).

P.P.S. Модераторы на drupal.org всегда такие тупые? Ну, чтобы я на будущее имел в виду Smile Товарищи из JET хотя бы честно пишут, что у них времени нет, а не мозги полоскают.

12 октября 2009 в 4:32
Аватар пользователя Dan Dan 0

"sunnybear" wrote:
Да, еще один вопрос. Что писать в package?

Othe или ничего. Если модуль имеет субмодули и/или сам является субмодулем, то пишут там группу, а так - он попадает в "Разное".

11 октября 2009 в 23:21

"sunnybear" wrote:
P.P.S. Модераторы на drupal.org всегда такие тупые?

Регулярно. Потребуется недюжинное терпение или поддержка пользователей чтобы они оставили придирки.

12 октября 2009 в 8:50

вопрос следующий: как достучаться до эакэшированного содержимого? Выползла проблема, что при первом просмотре все хуки вызываются нормально -> Web Optimizer отрабатывает. При повторном просмотре вызывается кэш, никакие хуки не вызываются. Как можно записать закэшированное содержимое страниц (изменить кэш) или вызвать Web Optimizer ДО вызова кэширования содержимого? hook_exit, по-видимому, не помогает.

27 октября 2009 в 17:12

Побороть удалось. После оптимизации делаем финт ушами\

<?php
register_shutdown_function
('weboptimizer_update_cache');
?>

а потом еще один финтик

<?php
function weboptimizer_update_cache () {
    global 
$weboptimizer_content;
    
page_set_cache($weboptimizer_content);
}
?>

Работает в обоих режимах (Normal / Aggressive). Доступно только в нативном модуле (не в standalone-версии). Будет в версии 0.6.7.

Теперь бы кто помог этот модуль на drupal.org пропихнуть Smile

21 ноября 2009 в 1:53

Решил поставить данный модуль

скачал для друпала отсюда

http://www.webogroup.com/ru/home/download/

включил, при попытке зайти в настроке, сразу ошибка, нет файлов и папки

Failed opening required '/sites/all/modules/weboptimizer/web-optimizer/controller/admin.php' (include_path='.:/usr/share/pear:/usr/share/php') in /sites/all/modules/weboptimizer/weboptimizer.module on line 330

Так и должно быть? Smile

28 апреля 2010 в 22:31

Да, там походу есть 2 продукта

один 14 кб, с картинкой
другой 1,5 м, без картинки

Автору за юзабилити незачет

29 апреля 2010 в 7:13

Сейчас есть для Drupal 7, кто-нибудь тестировал? Вообще стоит его ставить на семерку и не понятно, платно это всё или нет, на сайте самая последняя информация за 2009 год?

26 октября 2012 в 9:37