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.