Добрый день. Я занимаюсь web-разработкой и почти всем, что с этим связано.

Стоит ли переходить на PHP 7?

Зачем?

Ближе к делу

В сети можно встретить множество синтетических и реальных тестов производительности разных версий PHP и HHVM, которые говорят только об одном — с каждой версией PHP веб становится быстрее и быстрее. Большинство же моих проектов работают на MODX Revolution и CodeIgniter 3. И, естественно, мне было любопытно узнать, что изменится после смены версии PHP.

MODX Evolution

Конечно, я бы мог проверить изменение производительности и для MODX Evolution, но в этой системе очень много кода, зависящего от, как я написал выше, удалённых расширений PHP. Однако, в версии MODX Evolution 1.1RC , подготовленной пользователем dmi3yy, появилась полная поддержка PHP 7.

MODX Revolution

Итак, я взял несколько сайтов, работающих на PHP 5.6. Измеряю я обычно количество запросов и время на генерацию страницы. Логично предположить, что количество запросов мало коррелирует с версией PHP, но лишним добавить и эту информацию не будет. Начиная с версии MODX Revolution 2.5 реализована полная совместимость с PHP 7. До этого была лишь частичная поддержка PHP 7, ввиду чего у меня не работала админка, хотя сам сайт отлично работал.

Сайт №1

PHP 5.6, без кэширования — 156 запросов, 1.18 с.

PHP 5.6, с кэшированием — 17 запросов, 0.25 с.

PHP 7, без кэширования — 161 запрос, 0.43 с.

PHP 7, с кэшированием — 17 запросов, 0.02 с.

Сайт №2

PHP 5.6, без кэширования — 166 запросов, 0.66 с.

PHP 5.6, с кэшированием — 3 запроса, 0.06 с.

PHP 7, без кэширования — 166 запросов 0.34 с.

PHP 7, с кэшированием — 3 запроса, 0.04 с.

Сайт №3

PHP 5.6, без кэширования — 177 запросов, 1.82 с.

PHP 5.6, с кэшированием — 10 запросов, 0.39 с.

PHP 7, без кэширования — 177 запросов, 0.51 с.

PHP 7, с кэшированием — 10 запросов, 0.18 с.

Как видно, переключение версии PHP на последнюю положительно сказалось на производительности сайтов, увеличив её в 1.5-3 раза, а кое-где (например, на главной странице моего сайта) даже в 10 раз.

CodeIgniter 3

Я не могу похвастаться большим количеством проектов на CodeIgniter, но даже они обязывают внимательно относиться к производительности, так как количество статей и уникальных посетителей в месяц на одном из них исчисляется тысячами. На данный момент я занимаюсь оптимизацией и рефакторингом одного из них, где и без перехода на PHP 7 производительность кое-где возросла в несколько раз. В ближайшее время, когда я закончу текущую работу, я обязательно напишу о результатах смены версии.

Кому не стоит обновляться

Не стоит обновляться тем, чьи проекты основаны на расширениях, удалённых в новом PHP. Также стоит поискать в интернете информацию о незначительных изменениях синтаксиса, так как есть моменты, нарушающие обратную совместимость. Конечно, таких случаев один на тысячу, если не реже, но лучше перестраховаться.

Хостинг-провайдеры

Выпуск PHP 7 состоялся относительно недавно, поэтому не все хостинг-провайдеры дают возможность опробовать новинку. Например, beget уже позволяет порадоваться скоростью, а в timeweb, наверное, считают PHP 7 недостаточно стабильным.

Чужой опыт

Вывод

За переход на последнюю версию PHP больше «За», чем «Против». Поэтому, если вам охота лёгкой оптимизации, обновляйте PHP.

Комментарии