Pull to refresh

Comments 12

Как я понимаю, активный тайпхинтинг в стрикт режиме должен значительно повысить качество и/или частоту компиляции — пара простых проверок входа-выхода без всяких попыток приведения, после которых у нас типы железно известны (про union типы из той же 8 забудем).


Про ввод-вывод и тайминги не очень понял. Вот было, например, 300 мс у запроса, из них 50 мс php и 250 sql. Пускай jit уменьшил до 25мс php, стало 275. Типа немного, согласен. Но это на одном запросе. Но это нам позволит снизить потребление процессора в 2 раза. На каждый запрос будет приходиться в 2 раза меньше процесорного времени. Это большинству приложений неважно?

UFO just landed and posted this here
> Это большинству приложений неважно?

Да! Большинство приложений даже на 30% не загрузят самый вялый дроплет за $5 на DigitalOcean. Но «если вдруг», то пололок очень высок, к тому же слой серверного кода обычно легко масштабируется, в отличие от слоя БД например… Так что да… 50мc или 25мc разницы нет обычно (кто кстати сказал что оно даст 2x прирост?)
UFO just landed and posted this here
Понимаем JIT в PHP 8
Understanding something — типичный заголовок обучающей статьи на английском языке. Не стоит переводить его дословно, потому что на русском это звучит очень неестественно. Лучше придумать новый заголовок для статьи исходя из её содержимого. Например, «Разбираемся с JIT в PHP 8».
UFO just landed and posted this here

Важно понимать, что jit php не будет похож на jit java.
Насколько понял, от усложнения решили отказаться, чтобы хоть что-то вообще работало.
У java jit довольно сложный, много аналитики, много оптимизаций. И хотя конечный результат не дотягивает до результата монструозных компиляторов для C++, но всё же достаточно хорош.
У php jit будет намного проще, без сложной аналитики и оптимизаторов. Профилирование будет примитивным, и ускорение получит малая часть кода, причем не слишком большое, т.к. никаких сложных оптимизаций нет.
Но и это лучше, чем ничего. На каких-то кейсах даст пусть не особо большой, но профит.


Но даже без всего этого php сейчас работает достаточно быстро, подбираясь к java и C++.

И хотя конечный результат не дотягивает до результата монструозных компиляторов для C++, но всё же достаточно хорош.
Но даже без всего этого php сейчас работает достаточно быстро, подбираясь к java и C++.

[citation needed]

Java JIT вроде тоже не сразу строился.

И все же, если взять для сравнения производительности два крупнейших фреймворка на PHP и Java, Symfony-swoole работает значительно быстрее, чем Spring, хотя оба очень похожи - https://www.techempower.com/benchmarks/

Поверхностно, но действительно понятно чего ждать и почему так. Спасибо за перевод.

Если вы используете PHP, вам, вероятно, следует включить Opcache.

Он включен по умолчанию, начиная, если не ошибаюсь, с версии 5.6

В текущем описании читателю может показаться, что это что-то, что нужно включать отдельно.

Sign up to leave a comment.