Joomla 3.5 на PHP 7: Какие улучшения в скорости загрузки можно ожидать?
В обновленную версию Joomla! 3.5 вошло много мелких и весьма полезных дополнений, однако самым главным изменением стало то, что среднестатистический пользователь заметит отнюдь не сразу. И речь, конечно, о возможности поддержки PHP 7.
Естественно, более материальные новшества, такие как возможность динамично работать с изображениями, а также некоторые дополнения в пользовательский интерфейс помогут сделать процесс работы, в частности с таким аспектом, как шаблоны Joomla 3.5, более удобным. Однако и PHP 7 не стоит недооценивать. С его помощью можно снизить показатели отказов и сбоев, увеличить скорость загрузки страниц и сделать работу более мобильной.
Если вы уже читали статьи о принципе и преимуществах использования PHP 7, то наверняка знаете о том, что, по словам разработчиков, внедрение данного языка в CMS значительно повышает их производительность. Однако как же это повлияло непосредственно на Joomla? Этот вопрос и будет рассмотрен в данной статье.
Joomla 3.5: тест скорости
Обновленная версия PHP 7 стала самым весомым событием и важным изменением для PHP, начиная с версии PHP 5 в 2004 году, которая, кстати, имела немало недочетов и нареканий от пользователей. Команда разработчиков PHP заявляет о значительном прогрессе в данном, обновленном продукте: производительность повышена вдвое, также на 50% было снижено потребление памяти, в сравнении с предыдущей версией. Также присутствуют новые функции: конвертирование неисправных ошибок в исключения, добавления классов и операторов. Однако есть и плохие новости, в особенности они касаются пользователей Joomla! 3.5. Большинство изменений, что внесли разработчики PHP 7 в ядро языка, не поддерживаются платформой.
Тестовая среда
Площадкой для проведения данного тестирования был выбран локальный хостинг с использованием MAMP для OS X. Платформа - Joomla! 3.5.1, обновленная версия с чистой установкой и настройками для блога. В ходе тестирования сравнивались различные показатели производительности на более старой версии PHP, а именно - PHP 5.6.10, и показатели инновационного продукта компании - PHP 7.
Показатели исследования будут представлены в графической форме, а целью тестирования было проследить, как же взаимодействует CMS Joomla! с большинством пользователей при различных настройках. При совершении тестовой установки были отключены такие показатели, как кэширование данных в приложении и непосредственно на локальном сервере, дабы предоставить более точные и независимые результаты. Также было отключено и сжатие GZIP для установления более точного времени загрузки. По умолчанию в Joomla! установлено отображение следующих модулей:
- Модульный лист;
- Модуль меню;
- Модуль поиска;
- Список всех фронтенд просмотров;
- Модуль дополнительного и основного меню;
- Модуль авторизации.
Данные показатели остались неизменными, так как именно они влияют на конечную нагрузку, производят собственные запросы на использование памяти. Оставив их в первозданном виде, можно увидеть более полную и реальную картину. Также установка нагрузки на главной странице генерирует 21 запрос в MySQL. Это значение довольно распространенное для содержимого веб-страниц. Однако конечный показатель будет зависеть также от посторонних факторов, к примеру, от количества установленных пользователем расширений. Но в итоге некая часть запросов всегда будет находиться приблизительно на таком уровне, из-за ядра Joomla! и его потребности управлять сессиями, а также проверять работу опубликованных модулей.
Joomla! 3.5: сравнение производительности PHP 5.6 и PHP 7
Прежде чем приступать к сути исследования, каждый читатель должен принять во внимания тот факт, что данные показатели весьма индивидуальны и могут быть не точны в отдельных случаях. Так как, используя для тестирования другой, отличный сервер, в игру вступает целый ряд различных параметров, которые могут повлиять на производительность. Основной целью этого теста является изучение производительности чистой Joomla! под PHP 7.
При более высоком трафике сайтов, одним из ключевых направлений будет количество запросов в секунду обрабатываемое вашим сервером, но это не означает, что остальные улучшения, предлагаемые с помощью Joomla на PHP 7 не стоит реализации, поэтому локальный испытание должно быть достаточно.
Данное же исследование базируется на сравнения производительности двух ключевых параметров: объем памяти, что был использован во время загрузки и отображения страницы, а также общее время, которое было затрачено на данную операцию. Мы не измеряли скорость базы данных в этом тесте, так что именно поэтому мы использовали ту же версию MySQL (MySQLi 5.5.42) в обоих тестах, с одинаковым временем выполнения запроса, вне зависимости от версии PHP.
В данном тесте были измерены результаты с трех различных страниц:
- Главная страница с 8 модулями и контентом (com_content);
- Просмотр результатов поиска (com_search);
- Представление произвольного изображения (com_content with module inside article).
Ниже приведен график задержки загрузки отдельных элементов. И, как видно исходя из изображения, улучшение при использовании РНР 7 весьма заметно:
Joomla 3.5: разбор результатов тестирования скорости
Для сравнительно небольших задач, подобных модулю beforeRender, разница несущественна. Но анализируя показатели для более важных плагинов, таких как afterInitialise и afterRenderComponent на Joomla! 3.5 можно заметить, что скорость загрузки действительно возросла!
Мы можем видеть на изображении выше, что afterInitialise изначально взял 149.40 миллисекунды и afterRenderComponent 141.23 миллисекунд для загрузки, в то время как после обновления это время уменьшилось до 62,80 мс и 60,93 мс соответственно.
Так с использование Joomla! 3.5.1 на PHP 7 процесс загрузки для данных плагинов был завершен практически вдвое быстрее, чем в более старой версии. И это весомое достижение, особенно если учесть, что это все та же CMS, только с другой PHP версией. К тому же, улучшение не только в скорости: при использовании новой версии также потребляется намного меньше памяти. Значение памяти очень важно для сайтов с высоким трафиком и здесь мы увидим самые значительные изменения.
Чистая Joomla! с несколькими базовыми модулями и com_content материалом на главной странице потребляет менее 9 МБ памяти - 8,49 Мб. При использовании более старой версии PHP нам нужно как минимум 12 МБ (12,05 МБ), чтобы загрузить ту же страницу. В целом это означает, что переход на PHP 7 сэкономил более 40% памяти.
Если же обратить взгляд на временные рамки, то также можно увидеть значительный прогресс: общая средняя скорость в разы лучше!
Все полученные результаты, которые мы видим - это не просто изолированные моменты, а показатели улучшения общей производительности, ведь каждая задача загружается в разы быстрее. Это говорит о том, что мы будем видеть такие же результаты в большинстве элементов нагрузки. Не стоит также забывать, что тестирование было проведено с полным отключением кэша, а данные передавались в несжатом виде. Так что в целом от использования Joomla! и PHP 7 можно ожидать намного больших успехов, если данные параметры оптимизации будут включены.
Что стоит учитывать перед обновлением версии PHP 7?
Как показывают результаты исследования, введение поддержки PHP 7 в последний релиз Joomla! является крупнейшим доступным улучшением, предлагая гораздо больше, чем простое обновление функций.
Хотя это не то, что вы обязательно заметите, на первый взгляд, тот факт, что скорость загрузки является важным фактором вашего сайта, показатель отказов, а также улучшение потребления памяти обеспечивает более солидный опыт для сайтов, которые имеют большое количество посетителей и просмотров страниц. На 40% меньше памяти на одну страницу - это действительно много! Учитывая все это, единственный вопрос почему не обновиться сейчас?.
Очевидно, что скорость и улучшение памяти - весьма привлекательные параметры, которыми хочется воспользоваться как можно быстрее. Однако в данном деле лучше не спешить. Ведь, скорее всего ваш сайт был инсталлирован с использованием ранних версий Joomla! и PHP. И тот факт, что версия Joomla! 3.5 совместима с последним релизом РНР 7 не гарантирует совместимость в сторонних расширениях, уже установленных на вашем сайте. Поэтому, прежде чем приступить к установке обновленной версии РНР стоит произвести самостоятельное исследование и проверить совместимость расширений, установленных на вашем рабочем сайте. Не забудьте также проверить: совместим ли ваш хостинг-провайдер с PHP 7.0.0. Если нет, то возможно, самое время поискать провайдера, который позволит вам воспользоваться всеми преимуществами новой версии PHP.
Мы надеемся, что эта статья дала вам хорошее представление о том, какие выгоды можно ожидать от обновления версий PHP и Joomla! на вашем сайте.
Соседние материалы | ||||
Меняем внешний вид панели управления Joomla 3 | Joomla 3.5 - Все, что вам нужно знать |
Комментарии