PHP 7.4 быстрее, чем 7.3?

Язык PHP постоянно развивается разработчиками, и постоянно выпускаются новые версии. 28 ноября 2019 года была выпущена стабильная версия PHP 7.4, которая содержит новые функции, улучшения и улучшения производительности.

Что нового в PHP 7.4?

Какие изменения мы можем наблюдать в новой версии PHP по сравнению с предыдущими?

Предварительная загрузка — благодаря использованию PHP и OPcache, которые по умолчанию установлены на наших серверах, вы можете получить более высокую производительность. Код приложения сначала компилируется, а затем сохраняется в памяти. Это позволяет вам использовать данные, которые были помещены в область памяти, и избежать перекомпиляции вашего кода.

Последняя версия PHP также включает arrow functions, благодаря которым мы можем уменьшить объем кода и повысить читаемость кода.

Код для PHP 7.3 и более ранних версий:

array_map (функция (Пользователь $ user) {
вернуть $ user-> id;
}, $ users)

Тот же код, написанный с новыми стрелочными функциями, используемыми в PHP 7.4:

array_map (fn (User $ user) => $ user-> id, $ users)

Оператор spread — PHP 7.4 также предоставляет возможность использования оператора spread, благодаря которому мы можем повысить производительность нашего приложения.

Пример использования оператора спреда:

$ server = [‘litespeed’, ‘redis’, ‘mariadb’, ‘php’];
$ hosting = [‘домены’, ‘администрирование’, … $ server, ‘поддержка’];

Производительность PHP 7.4

Чтобы проверить производительность PHP 7.4 и разницу во времени загрузки веб-сайтов на основе этой версии и предыдущей версии 7.3, мы провели тесты. Для этого мы использовали три разных скрипта.

Каждый из тестов был выполнен по десять раз, а затем мы взяли среднее значение из результатов, которые мы включили в таблицу ниже:

bench.php micro_bench.php php_benchmark.php Łączny czas
PHP 7.3 0.322 s 1.925 s 0.727 s 2.974 s
PHP 7.4 0.255 s 1.696 s 0.661 s 2.612 s
Разница времени (чем меньше тем лучше) 0.067 s 0.229 s 0.066 s 0.362 s
Процент ускорения PHP 7.4 относительно do PHP 7.3 26% 13% 9% 14%

Несколько слов об используемых скриптах:

bench.php

Этот скрипт в основном выполняет задачи в циклах, помимо простых функций (которые в цикле увеличивают значение переменной, вычисляют длину строки или вызывают пустую функцию), он также выполняет, например, следующие задачи:

— вычисляет множество Мандельброта,
— функция Аккермана,
— вычисляет последовательность Фибоначчи,
— сортирует стопку,
— создает многомерный массив.

Источник: https://github.com/php/php-src/blob/master/Zend/bench.php

micro_bench.php

Этот сценарий также основан на циклах и, среди прочего, следующие задачи:

— вызывает функцию в цикле,
— читает значение свойства объекта,
— сохраняет значение в свойстве объекта,
— проверяет, присвоено ли значение свойству объекта,
— проверяет, не является ли значение свойства объекта пустым,
— вызывает метод объекта,
— читает значение статического свойства объекта,
— записывает значение в статическое свойство объекта,
— проверяет, присвоено ли значение статическому свойству объекта,
— проверяет, не является ли значение статического свойства объекта пустым,
— вызывает статический метод объекта.

Источник: https://github.com/php/php-src/blob/master/Zend/micro_bench.php

php_benchmark.php

Основная задача этого скрипта — выполнять стандартные операции на PHP и, возможно, в базе данных, используемой WordPress, Joomla, PrestaShop или другими CMS:

— расчет математических операций,
— действия на струнах,
— триггер петли,
— действия с условными операторами if else.

Источник: https://github.com/vanilla-php/benchmark-php/blob/master/benchmark.php

Мы рекомендуем вам самостоятельно провести тесты производительности и проверить новые функции PHP 7.4 на нашем хостинге. Каждый из наших пакетов имеет последнюю версию, установленную по умолчанию, то есть PHP 7.4.

5/5 - (2 голоса)