[Перевод] Производительность Composer 2.0 с JIT PHP 8

Прежде чем перейти к статье, приглашаем всех желающих поучаствовать в бесплатном вебинаре «PHP 8 — Что нового?».


Последние несколько месяцев для PHP разработчиков выдались поистине захватывающими. С релизами Composer 2.0 и PHP 8.0 произошли значительные обновления кодовой базы DXP (Digital Experience Platform) Ibexa и множества других программных проектов, работающих на PHP. В рамках продолжения темы проведения бенчмарков Composer 1.10 и 2.0 и Symfony 5.2 с PHP 7.1 и 8.0, сегодня мы рассмотрим производительность Composer 2.0 на PHP 8.0.

Как и в предыдущих статьях, я проводил бенчмарки на Hetzner CCX11 VPS с 2 выделенными виртуальными ЦП и 8 ГБ ОЗУ. Я протестировал три сценария с использования Composer 2.0.7:

Я решил не включать предварительную загрузку OPcache, потому что небольшое число запусков Composer вряд ли что-нибудь от нее выиграет. Используемые конфигурации OPCache и JIT:

opcache.preload_user=www-data
opcache.memory_consumption=1024
opcache.interned_strings_buffer=256
opcache.max_accelerated_files=30000
opcache.validate_timestamps=0

opcache.enable=1
opcache.enable_cli=1
opcache.file_cache="/tmp/php-file-cache"
opcache.file_cache_only=1
opcache.file_cache_consistency_checks=1

# only when JIT was enabled
#opcache.jit_buffer_size=512mb
#opcache.jit=1225

Контрольный прогон выполняется с установкой Ibexa Experience и включает следующее:

  1. Установить без файла блокировки и очищенных кэшей

  2. Потребовать новый пакет (novactive/ezseobundle)

  3. Установить с файлом блокировки, с очищенными кэшами

  4. Установить с файлом блокировки, с заполненными кэшами

Я запускал этот набор три раза с аналогичными скриптами из предыдущих бенчмарков и выбирал лучшие показатели по каждому из пунктов. Для отчетности я измерял время и использование памяти.

По продолжительности установки особых различий нет. При полном разрешении зависимостей быстрее всего справляется PHP 7.4, а медленнее всего — PHP 8.0 с JIT. При установке с файлом блокировки, но с пустым кэшем самым медленным оказался PHP 8.0 без JIT. Для случаев с заполненным кэшем результаты идентичны — всего за 6 секунд, что является хорошим результатом для интегрированных CI/CD конвейеров.

По использованию памяти показатели еще ближе друг к другу. С полным разрешением зависимостей PHP 8 является наиболее экономным, но немного более расточительным в других сценариях. Различия здесь довольно малы и поэтому не имеют большого значения в реальных сценариях.

Судя по результатам бенчмарков, для Composer нет больших преимуществ от использования PHP 8.0 (с JIT или без него) вместо PHP 7.4. Для более ощутимых улучшений я бы порекомендовал просто перейти с Composer 1 на Composer 2. Особенно учитывая значительное сокращение объема памяти, используемого для разрешения зависимостей.


Узнать подробнее о курсе «PHP-разработчик».

Зарегистрироваться на открытый вебинар «PHP 8 — Что нового?».

Let’s block ads! (Why?)

Read More

Recent Posts

VK купила 40% билетной платформы Intickets.ru

VK объявляет о приобретении 40% компании Intickets.ru (Интикетс). Это облачный сервис для контроля и управления продажей билетов на мероприятия. Сумма…

3 дня ago

OpenAI готовится запустить поисковую систему на базе ChatGPT

OpenAI готовится запустить собственную поисковую систему на базе ChatGPT. Информацию об этом публикуют западные издания. Ожидается, что новый поисковик может…

3 дня ago

Роскомнадзор рекомендовал хостинг-провайдерам ограничить сбор данных с сайтов для иностранных ботов

Центр управления связью общего пользования (ЦМУ ССОП) Роскомнадзора рекомендовал компаниям из реестра провайдеров ограничить доступ поисковых ботов к информации на российских сайтах.…

4 дня ago

Apple возобновила переговоры с OpenAI и Google для интеграции ИИ в iPhone

Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…

1 неделя ago

Российская «дочка» Google подготовила 23 иска к крупнейшим игрокам рекламного рынка

Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…

1 неделя ago

Google завершил обновление основного алгоритма March 2024 Core Update

Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…

1 неделя ago