The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В PHP 8 будет добавлен JIT-компилятор"
Отправлено opennews, 31-Мрт-19 12:59 
Разработчики PHP официально утвердили (https://blog.krakjoe.ninja/2019/03/php-gr8.html) план включения JIT-компилятора в состав следующей ветки PHP 8, но отвергли прдлложение по интеграции JIT в следующий значительный релиз PHP 7.4. Перед выполнением PHP транслирует исходные тексты PHP-скриптов в промежуточное представление (байткод), которое затем выполняется в виртуальной машине Zend VM. JIT поможет дополнительно поднять производительность за счёт преобразования байткода в специфичный для текущей аппаратной платформы машинный код, который может напрямую исполняться процессором, минуя интерпретатор байткода в Zend VM.

При этом после внедрения JIT кардинального роста производительности для web-разработчиков  не предвидится, так как основным узким местом для большей части применяемых на сайтах PHP-скриптов является ввод/вывод (обработка сетевых соединений, чтение и запись файлов, обращение к СУБД, кэширование и т.п.), а не скорость выполнения на CPU.  В процессе разработки прошлого набора оптимизаций было выявлено, что типичное PHP-приложение тратит примерно 20% времени на выполнение задач менеджера памяти, 10% на обработку хэш-таблиц, 30% на вызов внутренних функций и только 30% на выполнение кода в виртуальной машине.


Тем не менее, внедрение JIT не лишено смысла, так как даёт возможность вывести PHP за рамки web-разработки, благодаря повышению производительности при выполнении таких задач как машинное обучение, математические расчёты, анализ данных, 2D- и 3D-рендеринг. В ходе разработки ветки PHP 7 была проведена (https://www.opennet.ru/opennews/art.shtml?num=39724)  оптимизация методов работы с памятью и организации хранения структур данных, что позволило значительно поднять производительность и в задачах, связанных с web-разработкой,  догнать, а в некоторых тестах  перегнать (https://kinsta.com/blog/hhvm-wordpress/), по производительности (https://kinsta.com/blog/php-benchmarks/) альтернативную виртуальную машину HHVM (https://www.opennet.ru/opennews/art.shtml?num=50133) для PHP, в которой применялась JIT-компиляция.


Теперь настал черёд оптимизации стадии выполнения. Так как интерпретатор байткода в Zend VM уже достаточно хорошо оптимизирован, предполагается, что JIT будет привлекаться только для выборочного выполнения конструкций, для обработки которых имеет значение производительность CPU, например, для кода, выполняющего интенсивные математические вычисления и обработку в циклах данных, находящихся в оперативной памяти.


URL: https://blog.krakjoe.ninja/2019/03/php-gr8.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=50428

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру