Проверка тем и плагинов WordPress на совместимость с PHP 7. Wordpress и php 7


PHP7 и его совместимость с плагинами WordPress

php7

Если вы читали новости о HHVM, вы знаете, что HHVM произвел настоящую революцию. Он позволяет значительно ускорить выполнение PHP. Вы можете добиться ускорения работы WordPress более чем в 2 раза по сравнению с PHP 5.6. Однако PHP – не единственный фактор, влияющий на скорость работы сайта. Вы можете использовать простой VPS за десять долларов с установленным кэшированием Nginx, и ваш сайт будет выдерживать миллионы хитов в день. С другой стороны, бывают ситуации, когда вы не сможете использовать такие методы.

Не забывайте о Woocommerce и приложениях, в которых нельзя кэшировать бэкэнд.

В то время как HHVM начал революцию, PHP ее быстро поддержал и развил. Сегодня PHP7 работает медленнее лишь на 10%, но он еще даже не выпущен официально. Я уверен, что разработчики PHP обязательно улучшат скорость его работы в последующих релизах.

Недостатком HHVM всегда была совместимость (не все плагины поддерживали HHVM) и некоторые баги, которые со временем были исправлены. В число таких багов входили утечки памяти (высокое потребление памяти), а также высокое использование процессорных ресурсов в некоторых ситуациях. Я слышал, что многие проблемы были решены в последней версии, и совместимость только улучшилась.

HHVM требует некоторых навыков для своей реализации. Далеко не каждая хостинг-панель (Vesta, Virtualmin, Zpanel и т.д.) применила его на практике. HHVM в основном использовался хостинг-компаниями и сайтами на выделенном VPS. Easyengine сделал возможным использование HHVM для простых пользователей. С другой стороны, супер популярный ServerPilot до сих пор не реализовал HHVM, однако при этом они включили поддержку PHP7 с похожим увеличением скорости.

Одно из главных преимуществ PHP 7 – это практически такая же скорость для WordPress и более простая реализация. Если вы хотите попробовать PHP7, вы можете воспользоваться релиз-кандидатом, который увидел свет не так давно.

Я буду использовать одно из лучших решений среди хостинг-панелей – ServerPilot. Я думаю, что пришла пора для разработчиков протестировать их плагины, особенно сейчас, когда доступны такие прекрасные и доступные ресурсы, как DigitalOcean (взимают почасовую оплату) и ServerPilot (бесплатный).

Совместимость WordPress плагинов с PHP7

Я узнал у друзей, какие плагины они хотели бы видеть совместимыми с PHP7 «из коробки», и составил список из бесплатных и платных плагинов, к которым у меня был доступ. Вот результат:

Как только я активировал сайт со всеми этими плагинами на сервере с PHP7, я столкнулся с некоторыми проблемами. Меня приветствовал пустой экран с сообщением об ошибке, которое не давало сайту загрузиться:

Fatal error: ‘break’ not in the ‘loop’ or ‘switch’ context in /itsmdaily/public/wp-content/plugins/social-networks-auto-poster-facebook-twitter-g/inc-cl/fl.php on line 39

Warning: Declaration of tcm_management_table::prepare_items($search) should be compatible with WP_List_Table::prepare_items() in /itsmdaily/public/wp-content/plugins/thin-content-manager/thin-content-manager.php on line 39

Warning: Cannot modify header information – headers already sent by (output started at /itsmdaily/public/wp-content/plugins/thin-content-manager/thin-content-manager.php:39) in /itsmdaily/public/wp-includes/pluggable.php on line 1207

Спустя две минуты я получил четвертую ошибку на сайте:

Fatal error: Uncaught Error: Class ‘GS_Featured_Content’ not found in /itsmdaily/public/wp-includes/widgets.php:591 Stack trace: #0 /itsmdaily/public/wp-includes/widgets.php(720): WP_Widget_Factory->register(‘GS_Featured_Con…’)

PHP 7 и плагины

В данный момент три плагина из списка не работают с PHP7:

Как вы можете видеть, чем старше плагин, тем выше шанс, что он не будет работать с PHP7. Однако будьте осторожны, даже недавно обновленные плагины могут перестать работать, что показал случай с NextScripts. Обязательно протестируйте их перед тем, как переносить свой сайт на PHP7.

В целом же все будет в порядке. Возможно, один или два плагина перестанут работать. Я уверен, что плагины будут обновлены вскоре после официального выхода PHP7.

Один из плагинов из списка, который привлек мое внимание – это Simple Social Icons от StudioPress.

Автор плагина обновил его еще в начале августа, добавив к нему совместимость с PHP7. Возможно, это было сделано потому, что плагин действительно очень простой. Вот цитата из журнала изменений:

php7-compatible

Если плагины работают и платформа WordPress совместима с PHP7, могу ли я запустить свой сайт на предрелизной версии? Хотелось бы, но…

К сожалению, NewRelic пока не доступен для PHP7. Это означает, что я не смогу выявить серьезные проблемы и даже проблемы, связанные с плагинами, находясь далеко от компьютера. Однако, как только NewRelic станет доступным для PHP7, я тут же перемещу свои сайты на PHP7-дроплет.

Что по поводу плагина X?

Стоит отметить, что и WordPress, и PHP имеют тенденцию повреждать плагины в последних релизах. К примеру, WordPress 4.3 нарушил работу плагина Front-end Editor (в бета-версии).

Если вы привыкли к нему, то, увы, такие вещи тоже случаются. Я помню еще те времена, когда плагин Max Banner PRO (платный) перестал работать с PHP 5.5.

Когда плагин перестал работать, у пользователей было два выхода из такой ситуации. Найти ему замену или использовать версию PHP младше, чем 5.5. Если вы используете плагин, который не работает с последней версией PHP, бесплатный или платный, самое лучшее, что вы можете сделать – это уведомить его автора об этом. Если вам улыбнется удача, автор плагина быстро добавит поддержку новой версии PHP.

Все это приводит нас к одному вопросу: «Как узнать, что плагин, который я использую, будет поддерживаться в будущем?»

Мне кажется, что лучший ответ на этот вопрос – использовать плагины, созданные компаниями с хорошей репутацией (Automattic, StudioPress, MyThemeShop, ElegantThemes и т.д.). Это верно и для платных плагинов, и для бесплатных.

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

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

Вторая проблема, с которой вы можете столкнуться в результате того, что вы используете устаревший плагин – это приведение всех вещей в порядок. Представьте себе, что вы используете плагин для шорткодов. Вы вставили прекрасные объекты в свои записи. У вас примерно 1000 записей. Плагин перестал работать. Вы должны найти замену ему.

И, что самое интересное, вы теперь должны заменить 1000 шорткодов…

Релиз PHP7 должен быть выпущен в середине октября 2015.

Источник: http://www.itsmdaily.com

oddstyle.ru

Как я обновил php до 7 версии и wordpress | CODESELLER

Публикация в группе: Кастомизация WP-Recall и Wordpress

Вообщем еще год назад хотел перейти на php 7, но тогда не было memcached под эту версию и я забил (там что-то как-то можно было собрать, но я рукожоп и единственное что могу делать - вводить команды с гугла)

Сейчас предпринял еще одну попытку и все получилось, производительность выросла раз в 5 где-то, страницы для залогиненых открываются почти так же быстро как и для гостей с wp-supe-cache.

В чем конкретно заслуга (php 7 или opcache вместо xcache) я сказать не могу, главное все работает.

Если у кого-то как и у меня нет админа, но вы хотите проделать то же самое (конечно на свой страх и риск) то напишу как это сделал я:

Внимание! Я в части серверов и администрирования нуль, я даже до сих пор путаюсь в memcache и memcached и, вполне возможно, поставил себе что-то лишнее, так что настоятельно рекомендую обратиться к профессионалам, что бы вам все это сделали нормально. По сути главный мой посыл в конце записи с результатами, чем я хочу подстегнуть людей обновляться и делать свои сайты быстрее, а то очень-очень часто вижу нереально тормозные wordpress сайты.

У меня стоит:

Еще год назад в настройках www домена мне добавили возможность выбора версии php, но я написал вначале почему тогда я не стал использовать php7. Сейчас проблема решилась:

  1. Я выбрал для своего www домена php 7.0.15 (у меня там такая)
  2. Затем по гайду отсюда я выполнил следующие команды в ssh клиенте:
    1. yum install autoconf gcc libmemcached-devel zlib-devel/opt/php70/bin/pecl install memcached
    2. echo extension=memcached.so >> /opt/php70/etc/php.d/memached.ini
  3. Затем в php.ini который в папке с моим доменом добавил:
    1. extension=memcached.so
    2. zend_extension=opcache.so
  4. Перезапустил апач: service httpd restart
  5. Перезапустил memcached: service memcached restart
  6. Поставил Memcached Redux (там всего 1 php файл object-cache.php его я поместил в /wp-content)
  7. Все, результаты этой работы смотрите ниже

p.s. memcached redux помещает стандартный object cache wordpress'а в ОЗУ (без него все это кешируется только на время генерации страницы) что так же дает хороший прирост производительности. Так же я его использую что бы кешировать какие-то сложные запросы и отдельные части страниц: например последние комментарии или лучшие записи в категории. Возможно я как то не правильно описал работу плагина, но именно так я понимаю его смысл и вроде все работает :)

Далее идет сравнение:

-----------------------------------------------

php 5.3.3 - PHP 5.3.3 + xcache + memcached

php 7 - PHP 7.0.15 + opcache + memcached

-----------------------------------------------

php 5.3.3: Главная: 17.79 Mb / 0,62477 сек / 17 запросов

php 7: Главная: 8.98 Mb / 0,11904 сек / 17 запросов

php 5.3.3:Категория: 17.72 Mb / 0,53250 сек / 21 запросов

php 7: Категория: 8.92 Mb / 0,14287 сек / 21 запросов

php 5.3.3:Запись в которой 100+ комментариев: 20.49 Mb / 1,59759 сек / 140 запросов

php 7: Запись в которой 100+ комментариев: 10.68 Mb / 0,39940 сек / 140 запросов

php 5.3.3:Запись без комментариев: 17.35 Mb / 0,50184 сек / 21 запросов

php 7: Запись без комментариев: 8.64 Mb / 0,09951 сек / 21 запросов

 

Автор публикации

не в сети 5 часов

Preci

616 Комментарии: 244Публикации: 43Регистрация: 11-11-2014Продаж/Покупок: 1737/48

codeseller.ru

Проверка шаблона и плагинов WordPress на совместимость с PHP 7

Прошло уже достаточно много времени с момента выхода версии PHP 7, но пока на неё перешли, согласно статистике, менее 2% от всех сайтов WordPress. Тем не менее, большинство хостинг-провайдеров хотели бы добавить в панель управления своим клиентам опцию PHP 7. Что в ней такого особенного?

График от Zend.com

График от Zend.com наглядно показывает возможности PHP 7. Кому же не хочется бесплатно в 2 раза увеличить скорость своего сайта при помощи новой версии (по сравнению со старыми 5 и 6)? Kinsta демонстрирует результаты бенчмарков, но они отличаются в части HHVM. Мы не будем обсуждать здесь эти отличия.

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

Прежде чем щёлкать выключатель PHP 7 в панели управления, стоит сначала установить плагин проверки на совместимость PHP Compatibility Checker. Этот плагин был разработан компанией WP Engine, одним из ведущих производителей в данной области. Он определяет, поддерживает ваша текущая тема и установленные плагины версию PHP 7 или нет. Из панели администратора WordPress найдите и установите этот плагин, а затем активируйте его.

Плагин PHP Compatibility Checker, выполняющий проверку на совместимость

Зайдите в меню Сервис и выберите пункт «Совместимость с PHP», затем выберите «PHP 7» и кликните кнопку «Run».

Панель управления плагина PHP Compatibility Checker

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

Результаты тестов для активных плагинов и текущей темы

Если вы ещё не обновились до версии PHP 7, сделайте это прямо сейчас!

clubwp.ru

Мой опыт миграции на PHP 7 / Хабр

image Несколько дней назад я переключил свой сервер с порядка 30-ти сайтами на PHP 7. Некоторые из них были достаточно старыми и составляли широкий набор с различных фреймворков и CMS. Вот несколько советов для тех кто еще не решил переходить на PHP 7 или нет.

Начнем с того что я понимаю что есть много людей которые не считают стабильную версию действительно «стабильной» пока она чуть-чуть не повзрослела, ожидая что еще найдутся какие-то баги или несовместимости. С того что я пока видел, пробуя каждый release candidate как только он выходил, совсем безопасно переключиться на PHP 7 как только он выйдет. Я ни разу не заметил какого-то непонятного поведения или вылета которому виной не был бы я сам. Несмотря на то что это новая версия она не несет много несовместимых изменений, то есть по большому счету можете относиться к ней как к просто PHP 5.7 только существенно быстрее. И скорость действительно впечатляет, даже невероятно как. Для примера простой сайт на PHPixie заработал почти в три раза быстрее практически сравнившись со скоростью Phalcon на PHP 5.6, несколько сайтов на Wordpress показали стабильный прирост в скорости в два раза. Если учесть недавний отчет от Google что потеря даже 10% производительности загрузки страниц приводит к ощутимой потери клиентов, то если вы можете запросто ускорить работу сайта в два раза просто обновив PHP вы получаете больше продаж ничего не потратив. Вспомните об этом, когда будете убеждать своего менеджера перейти на PHP 7. Ничего не убеждает лучше, чем объем продаж.

Несколько замечаний

Расширение mysql больше недоступно, так что если вы еще не перешли на PDO или mysqli то теперь уж точно придется. Благо во многих случаях достаточно просто заменить вызовы к mysql_ функциям на mysqli_.

E_STRICT ошибки реклассифицированы как другие типы ошибок. Если раньше вы их прятали или игнорировали, то теперь они начнут всплывать вместе с другими. Например, вызов нестатических методов статически теперь выбрасывает E_DEPRECATED что создало кучу проблем с Joomla 2.5 который почему-то делает это довольно часто. Также несовместимое наследование теперь классифицируется как E_WARNING. Wordpress уже с февраля тестируется на работу с PHP 7, так что с ним самим проблем никаких нет, правда, несколько плагинов таки оказались несовместимыми.

foreach теперь всегда работает с копией массива, так что все изменения массива во время итерации не повлияют на саму итерацию. На самом деле, во многих случаях оно и так работало и сам случай довольно редкий, но все же в одном из плагинов я на это наткнулся.

Теперь $foo->$bar['baz'] интерпретируется как ($foo->$bar)['baz'] а не $foo->{$bar['baz']} как в PHP 5. Это редкий случай, но тоже попалось в одном из плагинов, и как оказалось в Magento 1.x (core/Mage/Core/Model/Layout.php).

Имейте в виду, что не все расширения уже поддерживают PHP 7. Я уже не могу использовать понравившийся мне XCache, который верно служил мне много лет.

Вряд ли вы встретите какие-то проблемы кроме вышеперечисленных, но если вам интересно то полный список доступен на сайте PHP.

В сумме мне заняло около 5 часов чтобы перевести все сайты на PHP 7. Процесс совсем нетрудный и пакеты доступны уже для всех популярных дистрибутивов. Так что даже если вы собираетесь ждать стабильного релиза (уже совсем недолго), нет никакой причины не приготовить свои сайты к миграции наперед.

P.S.: Фея в заголовке статьи — наш праздничный логотип PHPixie 3, он не совсем в тему, но очень хотелось поделиться. Ну можете считать, что это она PHP 7 несет в мешке.

habr.com

Тестирование PHP 7.1 на популярных CMS

В начале декабря вышла стабильная версия PHP 7.1, пришло время протестировать скорость работы популярных CMS (WordPress, Drupal и Joomla) на новой версии PHP.

Год назад мы тестировали PHP 7.0, но только на WordPress. На тот момент производительность возросла пример на 50% в сравнении с более старыми версиями PHP. Теперь настало время протестировать PHP 7.1 и на большом числе CMS!

Для тестирования мы будем использовать сервер PHAETON с панелью DirectAdmin, который имеет конфигурацию: Intel Xeon E3-1270 / 32 GB ECC RAM / 4 x 480 GB SSD (RAID 10).

Все сайты были установлены с помощью каталога приложений "Installatron" на тариф "Корпоратив" из профессиональной линейки тарифов.

Тестирование мы производили локально (для снижения издержек сети), с помощью утилиты ab: делаем 100 запросов в 10 потоков (условная эмуляция того, что на сайт одновременно заходят 10 посетителей и загружают 100 страниц).

Начнем с тестирования WordPress 4.7.

Версия PHP 5.6:

[~]# ab -c 10 -n 100 http://wp.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking wp.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        wp.p-host.inServer Port:            80Document Path:          /Document Length:        49297 bytesConcurrency Level:      10Time taken for tests:   3.591 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      4953200 bytesHTML transferred:       4929700 bytesRequests per second:    27.85 [#/sec] (mean)Time per request:       359.070 [ms] (mean)Time per request:       35.907 [ms] (mean, across all concurrent requests)Transfer rate:          1347.12 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.1      0       0Processing:   160  351 257.4    265    1268Waiting:      156  343 256.7    261    1264Total:        160  351 257.5    265    1268Percentage of the requests served within a certain time (ms)  50%    265  66%    306  75%    341  80%    401  90%    972  95%   1016  98%   1181  99%   1268 100%   1268 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://wp.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking wp.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        wp.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        49297 bytes

 

Concurrency Level:      10

Time taken for tests:   3.591 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      4953200 bytes

HTML transferred:       4929700 bytes

Requests per second:    27.85 [#/sec] (mean)

Time per request:       359.070 [ms] (mean)

Time per request:       35.907 [ms] (mean, across all concurrent requests)

Transfer rate:          1347.12 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.1      0       0

Processing:   160  351 257.4    265    1268

Waiting:      156  343 256.7    261    1264

Total:        160  351 257.5    265    1268

 

Percentage of the requests served within a certain time (ms)

  50%    265

  66%    306

  75%    341

  80%    401

  90%    972

  95%   1016

  98%   1181

  99%   1268

 100%   1268 (longest request)

Тестирование 5.6 версии показывает нам генерацию главной страницы в 36 мс и 28 запросов в секунду.

Версия PHP 7.0:

[~]# ab -c 10 -n 100 http://wp.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking wp.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        wp.p-host.inServer Port:            80Document Path:          /Document Length:        49297 bytesConcurrency Level:      10Time taken for tests:   2.097 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      4953200 bytesHTML transferred:       4929700 bytesRequests per second:    47.69 [#/sec] (mean)Time per request:       209.692 [ms] (mean)Time per request:       20.969 [ms] (mean, across all concurrent requests)Transfer rate:          2306.77 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.1      0       0Processing:    57  206 215.5    137     966Waiting:       56  205 215.2    136     966Total:         57  206 215.6    137     966Percentage of the requests served within a certain time (ms)  50%    137  66%    155  75%    166  80%    176  90%    780  95%    854  98%    876  99%    966 100%    966 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://wp.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking wp.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        wp.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        49297 bytes

 

Concurrency Level:      10

Time taken for tests:   2.097 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      4953200 bytes

HTML transferred:       4929700 bytes

Requests per second:    47.69 [#/sec] (mean)

Time per request:       209.692 [ms] (mean)

Time per request:       20.969 [ms] (mean, across all concurrent requests)

Transfer rate:          2306.77 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.1      0       0

Processing:    57  206 215.5    137     966

Waiting:       56  205 215.2    136     966

Total:         57  206 215.6    137     966

 

Percentage of the requests served within a certain time (ms)

  50%    137

  66%    155

  75%    166

  80%    176

  90%    780

  95%    854

  98%    876

  99%    966

 100%    966 (longest request)

Тестирование 7.0 версии показывает нам генерацию главной страницы в 21 мс и 48 запросов в секунду.

Версия PHP 7.1:

[~]# ab -c 10 -n 100 http://wp.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking wp.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        wp.p-host.inServer Port:            80Document Path:          /Document Length:        49297 bytesConcurrency Level:      10Time taken for tests:   1.958 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      4953200 bytesHTML transferred:       4929700 bytesRequests per second:    51.08 [#/sec] (mean)Time per request:       195.783 [ms] (mean)Time per request:       19.578 [ms] (mean, across all concurrent requests)Transfer rate:          2470.65 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.0      0       0Processing:    57  191 226.1    120     908Waiting:       56  189 226.0    117     908Total:         57  191 226.1    120     908Percentage of the requests served within a certain time (ms)  50%    120  66%    126  75%    137  80%    158  90%    830  95%    846  98%    906  99%    908 100%    908 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://wp.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking wp.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        wp.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        49297 bytes

 

Concurrency Level:      10

Time taken for tests:   1.958 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      4953200 bytes

HTML transferred:       4929700 bytes

Requests per second:    51.08 [#/sec] (mean)

Time per request:       195.783 [ms] (mean)

Time per request:       19.578 [ms] (mean, across all concurrent requests)

Transfer rate:          2470.65 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.0      0       0

Processing:    57  191 226.1    120     908

Waiting:       56  189 226.0    117     908

Total:         57  191 226.1    120     908

 

Percentage of the requests served within a certain time (ms)

  50%    120

  66%    126

  75%    137

  80%    158

  90%    830

  95%    846

  98%    906

  99%    908

 100%    908 (longest request)

Тестирование 7.1 версии показывает нам генерацию главной страницы в 20 мс и 51 запрос в секунду.

Небольшой итог тестирования WordPress: производительность PHP 7.1 осталась на уровне PHP 7.0, но также значительно выше производительности PHP 5.6.

Следующей тестируемой CMS будет Joomla 3.6.5:

Версия PHP 5.6:

[~]# ab -c 10 -n 100 http://jm.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking jm.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        jm.p-host.inServer Port:            80Document Path:          /Document Length:        10453 bytesConcurrency Level:      10Time taken for tests:   4.795 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      1090400 bytesHTML transferred:       1045300 bytesRequests per second:    20.86 [#/sec] (mean)Time per request:       479.499 [ms] (mean)Time per request:       47.950 [ms] (mean, across all concurrent requests)Transfer rate:          222.07 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.0      0       0Processing:   195  467 218.0    401    1077Waiting:      195  467 218.0    401    1077Total:        195  467 218.0    401    1077Percentage of the requests served within a certain time (ms)  50%    401  66%    512  75%    569  80%    601  90%    884  95%    922  98%   1042  99%   1077 100%   1077 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://jm.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking jm.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        jm.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        10453 bytes

 

Concurrency Level:      10

Time taken for tests:   4.795 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      1090400 bytes

HTML transferred:       1045300 bytes

Requests per second:    20.86 [#/sec] (mean)

Time per request:       479.499 [ms] (mean)

Time per request:       47.950 [ms] (mean, across all concurrent requests)

Transfer rate:          222.07 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.0      0       0

Processing:   195  467 218.0    401    1077

Waiting:      195  467 218.0    401    1077

Total:        195  467 218.0    401    1077

 

Percentage of the requests served within a certain time (ms)

  50%    401

  66%    512

  75%    569

  80%    601

  90%    884

  95%    922

  98%   1042

  99%   1077

 100%   1077 (longest request)

Тестирование 5.6 версии показывает нам генерацию главной страницы в 48 мс и 21 запрос в секунду.

Версия PHP 7.0:

[~]# ab -c 10 -n 100 http://jm.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking jm.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        jm.p-host.inServer Port:            80Document Path:          /Document Length:        10453 bytesConcurrency Level:      10Time taken for tests:   2.961 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      1090400 bytesHTML transferred:       1045300 bytesRequests per second:    33.77 [#/sec] (mean)Time per request:       296.133 [ms] (mean)Time per request:       29.613 [ms] (mean, across all concurrent requests)Transfer rate:          359.58 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.2      0       1Processing:    92  291 189.6    217     776Waiting:       92  291 189.5    217     776Total:         92  291 189.7    217     777Percentage of the requests served within a certain time (ms)  50%    217  66%    286  75%    400  80%    436  90%    667  95%    709  98%    768  99%    777 100%    777 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://jm.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking jm.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        jm.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        10453 bytes

 

Concurrency Level:      10

Time taken for tests:   2.961 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      1090400 bytes

HTML transferred:       1045300 bytes

Requests per second:    33.77 [#/sec] (mean)

Time per request:       296.133 [ms] (mean)

Time per request:       29.613 [ms] (mean, across all concurrent requests)

Transfer rate:          359.58 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.2      0       1

Processing:    92  291 189.6    217     776

Waiting:       92  291 189.5    217     776

Total:         92  291 189.7    217     777

 

Percentage of the requests served within a certain time (ms)

  50%    217

  66%    286

  75%    400

  80%    436

  90%    667

  95%    709

  98%    768

  99%    777

 100%    777 (longest request)

Тестирование 7.0 версии показывает нам генерацию главной страницы в 30 мс и 34 запроса в секунду.

Версия PHP 7.1:

[~]# ab -c 10 -n 100 http://jm.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking jm.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        jm.p-host.inServer Port:            80Document Path:          /Document Length:        10453 bytesConcurrency Level:      10Time taken for tests:   2.752 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      1090400 bytesHTML transferred:       1045300 bytesRequests per second:    36.34 [#/sec] (mean)Time per request:       275.190 [ms] (mean)Time per request:       27.519 [ms] (mean, across all concurrent requests)Transfer rate:          386.95 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.1      0       0Processing:    76  264 171.5    214     813Waiting:       76  264 171.5    214     813Total:         77  264 171.5    214     813Percentage of the requests served within a certain time (ms)  50%    214  66%    245  75%    290  80%    306  90%    703  95%    722  98%    801  99%    813 100%    813 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://jm.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking jm.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        jm.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        10453 bytes

 

Concurrency Level:      10

Time taken for tests:   2.752 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      1090400 bytes

HTML transferred:       1045300 bytes

Requests per second:    36.34 [#/sec] (mean)

Time per request:       275.190 [ms] (mean)

Time per request:       27.519 [ms] (mean, across all concurrent requests)

Transfer rate:          386.95 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.1      0       0

Processing:    76  264 171.5    214     813

Waiting:       76  264 171.5    214     813

Total:         77  264 171.5    214     813

 

Percentage of the requests served within a certain time (ms)

  50%    214

  66%    245

  75%    290

  80%    306

  90%    703

  95%    722

  98%    801

  99%    813

 100%    813 (longest request)

Тестирование 7.1 версии показывает нам генерацию главной страницы в 28 мс и 36 запросов в секунду.

Небольшой итог тестирования Joomla: производительность PHP 7.1 осталась на уровне PHP 7.0, как это было и при тестировании WordPress. Стоит отметить, что скорость работы сайта на данной CMS на 28% ниже, чем скорость работы сайта на WordPress.

В завершении этой статьи мы протестируем сайт на базе Drupal 8.2.3:

Версия PHP 5.6:

[~]# ab -c 10 -n 100 http://dr.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking dr.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        dr.p-host.inServer Port:            80Document Path:          /Document Length:        9145 bytesConcurrency Level:      10Time taken for tests:   1.286 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      961500 bytesHTML transferred:       914500 bytesRequests per second:    77.75 [#/sec] (mean)Time per request:       128.618 [ms] (mean)Time per request:       12.862 [ms] (mean, across all concurrent requests)Transfer rate:          730.04 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.0      0       0Processing:    29  125 186.4     64     701Waiting:       29  125 186.5     63     701Total:         29  126 186.5     64     701Percentage of the requests served within a certain time (ms)  50%     64  66%     74  75%     81  80%     87  90%    666  95%    675  98%    698  99%    701 100%    701 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://dr.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking dr.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        dr.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        9145 bytes

 

Concurrency Level:      10

Time taken for tests:   1.286 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      961500 bytes

HTML transferred:       914500 bytes

Requests per second:    77.75 [#/sec] (mean)

Time per request:       128.618 [ms] (mean)

Time per request:       12.862 [ms] (mean, across all concurrent requests)

Transfer rate:          730.04 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.0      0       0

Processing:    29  125 186.4     64     701

Waiting:       29  125 186.5     63     701

Total:         29  126 186.5     64     701

 

Percentage of the requests served within a certain time (ms)

  50%     64

  66%     74

  75%     81

  80%     87

  90%    666

  95%    675

  98%    698

  99%    701

 100%    701 (longest request)

Тестирование 5.6 версии показывает нам генерацию главной страницы в 13 мс и 78 запросов в секунду.

Версия PHP 7.0:

[~]# ab -c 10 -n 100 http://dr.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking dr.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        dr.p-host.inServer Port:            80Document Path:          /Document Length:        9145 bytesConcurrency Level:      10Time taken for tests:   1.293 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      961500 bytesHTML transferred:       914500 bytesRequests per second:    77.32 [#/sec] (mean)Time per request:       129.328 [ms] (mean)Time per request:       12.933 [ms] (mean, across all concurrent requests)Transfer rate:          726.04 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.1      0       0Processing:    26  127 162.4     69     634Waiting:       26  127 162.3     69     634Total:         26  127 162.4     69     635Percentage of the requests served within a certain time (ms)  50%     69  66%     87  75%    110  80%    129  90%    582  95%    590  98%    635  99%    635 100%    635 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://dr.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking dr.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        dr.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        9145 bytes

 

Concurrency Level:      10

Time taken for tests:   1.293 seconds

Complete requests:      100

Failed requests:        0

Write errors:           0

Total transferred:      961500 bytes

HTML transferred:       914500 bytes

Requests per second:    77.32 [#/sec] (mean)

Time per request:       129.328 [ms] (mean)

Time per request:       12.933 [ms] (mean, across all concurrent requests)

Transfer rate:          726.04 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.1      0       0

Processing:    26  127 162.4     69     634

Waiting:       26  127 162.3     69     634

Total:         26  127 162.4     69     635

 

Percentage of the requests served within a certain time (ms)

  50%     69

  66%     87

  75%    110

  80%    129

  90%    582

  95%    590

  98%    635

  99%    635

 100%    635 (longest request)

Тестирование 7.0 версии показывает нам генерацию главной страницы в 13 мс и 77 запросов в секунду.

Версия PHP 7.1:

[~]# ab -c 10 -n 100 http://dr.p-host.in/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking dr.p-host.in (be patient).....doneServer Software:        nginx/1.10.1Server Hostname:        dr.p-host.inServer Port:            80Document Path:          /Document Length:        9145 bytesConcurrency Level:      10Time taken for tests:   0.686 secondsComplete requests:      100Failed requests:        0Write errors:           0Total transferred:      961500 bytesHTML transferred:       914500 bytesRequests per second:    145.70 [#/sec] (mean)Time per request:       68.633 [ms] (mean)Time per request:       6.863 [ms] (mean, across all concurrent requests)Transfer rate:          1368.10 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.5      0       5Processing:    16   63  24.1     59     148Waiting:       16   63  24.3     59     148Total:         17   64  24.1     59     148Percentage of the requests served within a certain time (ms)  50%     59  66%     69  75%     74  80%     80  90%     97  95%    119  98%    130  99%    148 100%    148 (longest request)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[~]# ab -c 10 -n 100 http://dr.p-host.in/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking dr.p-host.in (be patient).....done

 

Server Software:        nginx/1.10.1

Server Hostname:        dr.p-host.in

Server Port:            80

 

Document Path:          /

Document Length:        9145 bytes

 

Concurrency Level:      10

Time taken for tests:   0.686 seconds

Complete requests:

lite.host

Как проверить совместимость тем и плагинов WordPress с PHP 7

Получив в панели вашего хостинга предупреждение об использовании устаревшей версии PHP — не спешите менять на более новую. Сперва проверьте, поддерживают ли ваши темы и плагины WordPress новую версию PHP.

Предупреждение Beget о PHP

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

Скорость работы скриптов на PHP 7, по сравнению с предыдущими версиями, возросла почти в два раза.

1. Создаем бэкап сайта. 2. Устанавливаем и активируем плагин PHP Compatibility Checker

Плагин PHP Compatibility Checker

3. В админ-панели WordPress переходим Инструменты — PHP Compatibility.

Инструменты PHP Compatibility

4. Смотрим результаты:

Результаты-сканирования

siteask.ru

Исчерпывающие бенчмарки PHP 5.6, 7.0, 7.1, 7.2 и HHVM (2018) / Блог компании Mail.Ru Group / Хабр

Каждый год мы стараемся тщательно измерять производительность разных версий PHP и HHVM на различных платформах. В этом году мы измерили четыре версии PHP и HHVM на 20 платформах/конфигурациях, включая WordPress, Drupal, Joomla!, Laravel, Symfony и многие другие. Также мы протестировали популярные решения для электронной коммерции вроде WooCommerce, Easy Digital Downloads, Magento and PrestaShop.

Мы всегда рекомендовали пользователям WordPress не пренебрегать преимуществами свежайших поддерживаемых версий PHP. Не только ради безопасности, но и ради повышения производительности. Причём речь идёт не только о WordPress, это по большей части справедливо для всех платформ. И сегодня мы продемонстрируем, как PHP 7.2 одерживает сокрушительную победу!

В этом году результаты бенчмарков очень сильно отличаются от прошлогодних, когда победителем стал HHVM. Нас впечатлило, что PHP 7.2 вырвался в лидеры по скорости работы. Нужно отметить, что применительно к WordPress HHVM больше не поддерживается и будет постепенно сходить со сцены. Мы больше не рекомендуем своим клиентам переходить на HHVM и отмечаем, что его поддержка другими платформами также снизилась.

Это хорошие новости для разработчиков и конечных пользователей, поскольку теперь можно сосредоточиться на PHP и создавать более быстрые сайты и веб-сервисы.

Мы протестировали 20+ платформ/конфигураций с пятью разными движками, и PHP 7.2 завоевал золотую медаль с результатом 14/20!

Бенчмарки PHP и HHVM (2018)

Для каждого теста мы брали последнюю версию каждой платформы и в течение минуты измеряли работу главной страницы с 15 одновременными пользователями. Тестовый стенд:

opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1

Тесты выполнял Торик Фирдаус (Thoriq Firdaus), один из разработчиков WordPress и инженер поддержки в Kinsta. Торик участвовал в создании WordPress Core и редактора локализации WordPress для Индонезии.

Что такое PHP?

PHP — это гипертекстовый препроцессор. Сегодня это один из самых популярных скриптовых языков в сети. Согласно W3Techs, PHP применяется на 83 % сайтов, использующих языки программирования на стороне сервера.

Что такое HHVM?

Из-за проблем с производительностью PHP команда Facebook разработала HipHop Virtual Machine (HHVM). Это система, использующая JIT-компиляцию (just-in-time) для преобразования PHP-кода в машинный код ради синергии PHP и железа, на котором этот код исполняется.

Протестированные платформы и конфигурации

Мы протестировали 20 платформ/конфигураций. В некоторых случаях из-за отсутствия поддержки конкретной версии PHP пришлось протестировать по несколько версий. Все измерения — количество запросов в секунду. Чем больше значения, тем лучше.

WordPress 4.9.4

Первой протестированной платформой стал, конечно же, наш любимый WordPress (возможно, мы немного предвзяты, поскольку ежедневно живём этой CMS). По сути, WordPress — ПО с открытым исходным кодом, которое можно использовать для создания прекрасных сайтов, блогов или приложений. Сегодня на WordPress приходится около 29 % всех сайтов в интернете, то есть более четверти.

Для измерения производительности WordPress мы использовали бесплатную тему Twenty Seventeen. Для заполнения взяли фальшивый контент из wptest.io и в течение минуты тестировали главную страницу, которую одновременно просматривают 15 пользователей.

Результаты бенчмарков

Победил PHP 7.2, он оказался чуть быстрее HHVM. Это важная перемена по сравнению с бенчмарками 2016 года, когда однозначным победителем был HHVM. Кроме того, PHP для WordPress работает гораздо стабильнее. Мы сами сталкивались с многочисленными проблемами при эксплуатации HHVM. А если сравнить PHP 7.2 с PHP 5.6, то разница в производительности оказывается трёхкратной!

WordPress 4.9.4 + WooCommerce 3.3.1

WooCommerce — полностью кастомизируемая open-source платформа на основе WordPress. К тому же это одно из самых популярных решений для электронной коммерции, на нём работает свыше 42 % всех коммерческих сайтов.

Для этого теста мы взяли WordPress с установленным WooCommerce и бесплатной темой Storefront eCommerce.

Результаты бенчмарков

WooCommerce с трудом работал с HHVM, а PHP 7.2 победил PHP 7.1 с небольшим преимуществом.

WordPress 4.9.4 + Easy Digital Downloads 2.8.18

Easy Digital Downloads (EDD) создал Пипин Уильямсон (Pippin Williamson). Это бесплатный WordPress-плагин, помогающий авторам и разработчикам продавать цифровые продукты.

Посмотрев, как работает WooCommerce, мы протестировали WordPress с одним лишь установленным Easy Digital Downloads. Использовалась бесплатная тема EDD Starter Theme.

Результаты бенчмарков

PHP 7.2 доминирует.

Drupal 8.4.4

Drupal — open-source CMS, заслужившая популярность благодаря модульной системе и сильному сообществу разработчиков. Она появилась в 2000-м и, согласно W3Techs, используется примерно на 2,2 % всех сайтов, занимая 4,4 % рынка CMS.

Мы использовали бесплатную тему Bartik 8.4.4. Отметим, что Drupal 8.4.x несовместима с PHP 7.2 (#2932574), поэтому движок мы не тестировали.

Drupal

Результаты бенчмарков

Поскольку последняя версия Drupal не поддерживает PHP 7.2, победителем стал HHVM. Хотя если посмотреть на улучшения производительности в предыдущих версиях PHP, то можно смело предположить, что 7.2 работал бы ещё быстрее.

Joomla! 3.8.5

Joomla! — бесплатная CMS с открытым исходным кодом для публикации контента. Она впервые вышла в августе 2005-го. Joomla! построена на основе фреймворка для веб-приложений по схеме «модель-представление-контроллер» и, согласно W3Techs, используется на 3,1 % всех сайтов в интернете.

Для тестирования Joomla мы использовали бесплатный шаблон Beez3.

Joomla!

Результаты бенчмарков

На примере Joomla мы видим стабильный рост производительности PHP от версии к версии. Но HHVM всё ещё лидирует.

Magento 2 (CE) 2.1.11 + 2.2.2

Magento — популярная open-source платформа, написанная на PHP. Она появилась в марте 2008-го. Согласно W3Techs, Magento работает на 1,2 % всех сайтов.

Для тестирования Magento 2 benchmark мы использовали бесплатную тему Luma. Поскольку PHP 5.6 поддерживался только версией 2.1.11, нам пришлось прогонять бенчмарки на двух версиях Magento. Мы установили её с образцами данных и темой, идущими в комплекте. Для дополнительного тестирования использовали версию 2.2.2. Magento 2 пока не поддерживает PHP 7.2 и последнюю версию HHVM.

Magento 2

Результаты бенчмарков

Поскольку Magento 2 не поддерживает PHP 7.2 и последнюю версию HHVM, победителем стал PHP 7.1. Впечатляет рост производительности от версии к версии.

Grav CMS 1.3.10

Grav — простая, но мощная open-source CMS, которой не требуется база данных. Её ещё иногда называют «CMS на основе неструктурированных файлов (flat-file)».

Мы использовали бесплатный пакет Clean Blog. Обратите внимание, Grav CMS больше не совместима с компилятором HHVM, а из сборки Travis удалена среда HHVM.

Результаты бенчмарков

PHP 7.2 снова одержал убедительную победу.

October CMS 1.0.433

October CMS — бесплатная open-source модульная CMS-платформа с собственным сервером, построенная на базе PHP-фреймворка Laravel. Впервые она вышла в мае 2014-го.

Мы использовали бесплатную тему Clean Blog. October CMS больше не совместима с PHP 5.6 и HHVM. И хотя мы cмогли обмануть инсталлятор, убрав проверку PHP, мастер конфигурирования вылетел с ошибкой 500.

Результаты бенчмарков

Два движка не поддерживаются, однако PHP 7.2 снова победил.

Приятно, что все эти не столь крупные CMS отказываются от поддержки старых версий PHP. Это одно из преимуществ, свойственных не слишком большим продуктам. К сожалению, когда речь заходит о WordPress и прочих платформах с большими долями рынка, прогресс замедляется из-за соображений обратной совместимости.

Laravel 5.4.36 + 5.6

Laravel — очень популярный open-source PHP-фреймворк, использующийся для создания веб-приложений. Он был разработан Тейлором Отвеллом (Taylor Otwell) и выпущен в июне 2011-го.

В этом тестировании мы использовали чистую HTML-тему. Тесты были прогнаны несколько раз, взято среднеарифметическое. Подробности можно найти здесь.

Результаты бенчмарков

HHVM — несомненный победитель.

Laravel 5.6 несовместим с HHVM и требует PHP 7.1 или выше.

Laravel 5.6

Результаты бенчмарков

Поразительная разница между результатами Laravel 5.6 PHP 7.2 и Laravel 5.4.36! Последние версии PHP явно пошли на пользу Laravel.

Symfony 3.3.6 + 4.0.1

Symfony — это набор многократно используемых PHP-компонентов и PHP-фреймворк для создания веб-приложений, API, микросервисов и веб-сервисов. Он вышел в октябре 2005-го.

Здесь мы использовали Symfony Demo с MySQL (по умолчанию используется SQLite). Тесты проведены несколько раз, взято среднеарифметическое. HHVM выкидывал ошибку 500. Подробности можно почитать здесь.

Результаты бенчмарков

PHP 7.2 снова победил!

Symfony 4.0.1 требуется PHP 7.1 или выше. И снова HHVM выкидывал ошибку 500.

Результаты бенчмарков

PHP 7.2 опять царь горы.

PyroCMS 3.4.14

PyroCMS — open-source расширение для Laravel, ускоряющее создание сайтов и приложений с помощью этого фреймворка.

Мы использовали бесплатную тему Accelerant Theme (идёт по умолчанию в PyroCMS). PyroCMS не работает в HHVM, вероятно, из-за Laravel.

Результаты бенчмарков

Результаты близки к PyroCMS, но PHP 7.2 опять был лучшим.

Pagekit 1.0.13

Pagekit — лёгкая модульная open-source CMS, позволяющая создавать прекрасные сайты. Она вышла весной 2016-го.

Мы использовали бесплатную тему One (идёт в Pagekit по умолчанию).

Результаты бенчмарков

Pagekit с трудом работал с HHVM. PHP 7.2 — безусловный победитель.

Bolt CMS 3.4.8

Bolt — это open-source инструмент управления контентом, который авторы стараются сделать как можно проще. Он построен на основе компонентов Silex и Symfony, использует Twig, а также SQLite, MySQL или PostgreSQL.

Мы использовали бесплатную тему Bolt Base 2016. HHVM не поддерживается (#6921).

Результаты бенчмарков

Хорошо видно, что с каждой новой версией PHP производительность Bolt CMS растёт.

Anchor CMS 0.12.6 (pre-release)

Anchor — очень простая и компактная open-source система для ведения блогов.

Мы использовали бесплатную тему Default Theme.

Результаты бенчмарков

Результаты PHP 7.1 и PHP 7.2 очень близки, но PHP 7.1 оказался чуть быстрее.

PrestaShop 1.7.2.4

PrestaShop — популярное и очень быстро развивающееся open-source решение для интернет-магазинов. Первая версия вышла в 2008-м, и, согласно W3Techs, PrestaShop используется на 0,6 % всех сайтов.

Мы взяли бесплатную тему Classic Theme. PrestaShop не поддерживает HHVM.

Результаты бенчмарков

Результаты почти одинаковые, но PHP 7.2 на полноздри вырвался вперёд.

Craft CMS 2.6.3011

Craft CMS — продукт для разработчиков, дизайнеров и веб-специалистов, отличающийся гибкостью применения, широкими возможностями и простой использования.

Мы взяли бесплатную тему по умолчанию.

Результаты бенчмарков

Craft CMS плохо работает с HHVM. Но зато PHP 7.2 опять на коне!

Fork CMS 5.2.2

Fork — простая open-source CMS, в которой применяются компоненты Symfony. Здесь мы использовали бесплатную тему, идущую по умолчанию, Fork Theme. Fork CMS требуется PHP 7.1 или выше, она не поддерживает HHVM.

Результаты бенчмарков

PHP 7.2 превзошёл по производительности PHP 7.1.

Мы в Kinsta перешли на PHP 7.2

Если эти результаты вас не убедили, то мы уж и не знаем, что вас вообще убедит. Просто дружеское напоминание, если вы клиент Kinsta: мы выпустили PHP 7.2 в декабре 2017-го. Если вам нужно увеличить производительность, можете легко перейти на PHP 7.2 одним кликом в панели MyKinsta.

Если вас беспокоит несовместимость со сторонними плагинами (это возможно), то именно для этого нужны площадки для стейджинга. Можете потестировать без риска для вашего production-сайта.

Впечатления от результатов бенчмарков

Как видите, PHP 7.2 по производительности лидирует на всех платформах.

habr.com


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта