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).
  • Добавить наконец возможность локализации :)

Ссылки

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

0 Thanks

Комментарии

Аватар пользователя Atl Atl 27 марта 2009 в 0:49

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

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

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

Аватар пользователя achadidi achadidi 3 апреля 2009 в 1:58

отключила в производительности склейку цсс и 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

Аватар пользователя achadidi achadidi 3 апреля 2009 в 11:56

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

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

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

Аватар пользователя Химический Али Химический Али 24 мая 2009 в 11:17

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. Сколько гугл запросил за скриптик?
Пока предложений от гугла не поступало :)

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/

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

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

Аватар пользователя Dan Dan 12 сентября 2009 в 1:57
"sunnybear" wrote:

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

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

Аватар пользователя bodro bodro 12 сентября 2009 в 19:28

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

Аватар пользователя volocuga volocuga 12 сентября 2009 в 23:16

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

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

Аватар пользователя Steh Steh 30 сентября 2009 в 8:18

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

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

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

Далеко не все

MDinc wrote:

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

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

MDinc wrote:

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

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

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

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

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

Аватар пользователя Dan Dan 1 октября 2009 в 1:03
"sunnybear" wrote:

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

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

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

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

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

Аватар пользователя Химический Али Химический Али 2 октября 2009 в 11:09

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

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

Аватар пользователя DennisVV DennisVV 2 октября 2009 в 16:17
"Химический Али" wrote:

Химический Али

спасибо за пояснение
тогда ждем модуля

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

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

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

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

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

Аватар пользователя Dan Dan 11 октября 2009 в 23:21
"sunnybear" wrote:

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

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

Аватар пользователя Химический Али Химический Али 12 октября 2009 в 8:50
"sunnybear" wrote:

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

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

Аватар пользователя sunnybear sunnybear 27 октября 2009 в 17:12

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

Аватар пользователя sunnybear sunnybear 21 ноября 2009 в 1:53

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

<?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 пропихнуть :)

Аватар пользователя Valeratal Valeratal 28 апреля 2010 в 22:31

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

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

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

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

Аватар пользователя Valeratal Valeratal 29 апреля 2010 в 7:13

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

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

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

Аватар пользователя Funtik44 Funtik44 26 октября 2012 в 9:37

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