[PHP, Программирование] Производительность Composer 2.0 с JIT PHP 8 (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
12-Янв-2021 16:34
Прежде чем перейти к статье, приглашаем всех желающих поучаствовать в бесплатном вебинаре «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 и включает следующее:
  • Установить без файла блокировки и очищенных кэшей
  • Потребовать новый пакет (novactive/ezseobundle)
  • Установить с файлом блокировки, с очищенными кэшами
  • Установить с файлом блокировки, с заполненными кэшами
Я запускал этот набор три раза с аналогичными скриптами из предыдущих бенчмарков и выбирал лучшие показатели по каждому из пунктов. Для отчетности я измерял время и использование памяти.
По продолжительности установки особых различий нет. При полном разрешении зависимостей быстрее всего справляется 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. Особенно учитывая значительное сокращение объема памяти, используемого для разрешения зависимостей.
===========
Источник:
habr.com
===========

===========
Автор оригинала: Jani Tarvainen
===========
Похожие новости: Теги для поиска: #_php, #_programmirovanie (Программирование), #_php, #_composer, #_blog_kompanii_otus._onlajnobrazovanie (
Блог компании OTUS. Онлайн-образование
)
, #_php, #_programmirovanie (
Программирование
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 25-Ноя 05:52
Часовой пояс: UTC + 5