Розганяємо Joomla! 1

Однак

Навчитесь створювати свої власніунікальні тапрофесійні шаблони дляJoomla 2.5!

Ласкаво просимо до школи Джумла!

ЗАВАНТАЖИТИ СТАБІЛЬНУ ВЕРСІЮ ДЖУМЛА

Розганяємо Joomla! 1.5: від міфів до реальності

більшість розширень створюються без урахування вимог високої продуктивності та будь-якої оглядки на потужності кінцевих серверів, часто навіть не виділених чи віртуальних, а розташованих на загальному хостингу. Розробка безкоштовних рішень обертається 100-500% уповільненням швидкості завантаження сайту. Давайте розбиратися, як із цим можна боротися.

Серверна частина

Кешування на стороні сервера

Як один з кешуючих рішень може використовуватися і Web Optimizer: вбудоване кешування HTML-документів дозволяє віддавати їх відразу в тому вигляді, в якому вони виходять системою після всіх запитів до бази. При цьому, звичайно, практично всі ці запити не здійснюються. Дане кешування («монолітне») підійде лише в тих випадках, коли зовнішні сторінки Joomla! змінюються щодо рідко.

Якщо просто включити Web Optimizer у процес створення сторінок, час обробки документа зросте незначно (після створення всіх кеширующих файлів на 0,006с чи 3% на тестовому сервері). Додатково увімкнувши HTML-кешування в Web Optimizer, можна скоротити час віддачі документа до 0,08с (майже вчетверо порівняно з вихідним часом створення сторінки). Відразу хочу відзначити, що установка на кшталт аналогічного за функціональністю доповнення Content Static зорово на продуктивності не позначилася.

Очевидно, що грамотнішим буде кешувати окремі модулі на сторінці, залишаючи потрібні місця (або як їх люблять називати вшаблонних двигунах - заглушки) динамічними. Однак це рішення вимагає суттєвого втручання в алгоритм роботи самої CMS. Доповнення System-Cache (включено у складання за замовчуванням) працює саме за таким принципом і на даний момент забезпечує практично найкращу продуктивність (при великій стабільності алгоритму).

Закінчуючи про кешування створюваних сторінок за сервера варто згадати, що доповнення Joomla Performance Booster показало результати приблизно 50% (п'ятикратний приріст продуктивності проти «звичайної» версією) краще, ніж System-Cache, проте може працювати настільки стабільно.

Кешування запитів до бази даних

Доповнення Query Cache дозволяє використовувати як файлову систему, так і популярні підсистеми, що кешують (APC, Memcache та ін.) для збереження виконаних запитів. Однак у випадку лише файлової системи "завести" кеш не вдалося.

Клієнтська частина

«Чиста» система

"Чиста" установка Joomla! 1.5 набрала 65 балів зі 100. Цілком прийнятно. Варто розуміти, що якщо на систему просто навернути десяток модулів і компонентів, то оцінка різко погіршиться до 30-40.

Наступний етап: архівування

У Joomla! є вбудований gzip. Однак, по-перше, він працює через PHP, по-друге, тільки для HTML-файлів. Сумно, що й вплинуло на оцінку: вона піднялася лише до 67.

CssJsCompress

Досить відомий додаток, що дозволяє об'єднувати CSS- та JS-файли. Однак, не додає до них всіх кешуючих заголовків та стиску, що й відбилося на результаті: всього 72 бали за YSlow. У самій Joomla! gzip був увімкнений. Додаток CSS/JS Cache не змусив коректно працювати.

Joomla Performance Booster

SmartOptimizer

Далі був протестований Smart Optimizer (як окремий PHP-додаток) - за характером роботи повністю аналогічний відомому Minify (доповнення Minify4Joomla "завести" не вдалося). Установка у нього досить складна для непрофесіонала, до того ж доводиться редагувати шаблони вручну, немає можливості об'єднувати файли з різних директорій. Однак решта на висоті: оцінка піднялася до 85. У самій Joomla! gzip був увімкнений.

Web Optimizer

Висновок

На даний момент для Joomla! 1.5 не вдалося знайти потужнішого безкоштовного рішення для оптимізації продуктивності, ніж Web Optimizer. PHP Speedy доступний поки що тільки для Joomla! 1.0, а Joomla Performance Booster є платним (якщо вдасться оформити переказ грошей, то незабаром буде викладено та його огляд).

Залежно від конкретних завдань та серверного оточення швидкість роботи практично довільного сайту на Joomla! може бути прискорена порядок (мається на увазі серверне + клієнтське прискорення). Можливо, у частині продуктивності Joomla! і поступається Drupal, проте при правильному використанні існуючих інструментів цей розрив можна скоротити до мінімуму.