Olá, meu nome é Nikolai Krapivny, chefio o departamento de desenvolvimento do lado do servidor no Badoo. No Badoo, o PHP é uma das principais linguagens; a maior parte da lógica de negócios do nosso sistema está escrita nele. Portanto, seguimos as notícias do mundo do PHP, participamos ativamente do desenvolvimento da linguagem e tentamos desenvolver a comunidade em torno do PHP .
Hoje eu gostaria de compartilhar uma tradução de uma carta de Zeev Suraski , um dos fundadores da Zend Technologies, que descreve o desenvolvimento adicional do PHP e mostra o que devemos esperar no PHP 8.Eu escreveria sobre isso um pouco mais tarde, mas como eles levantaram o tópico do PHP 8, parece que é hora de iniciar uma discussão.
Enfatizo: o objetivo desta carta não é discutir em detalhes todas as mudanças que mencionei, mas consolidar nossos planos: vamos nos concentrar no PHP 8 após 7.3, que é baseado em alguns de nossos projetos de pesquisa e desenvolvimentos experimentais.
Existem várias áreas para o desenvolvimento das quais, parece-me, é necessário direcionar recursos na próxima versão principal.
Jit
Muitos de vocês provavelmente sabem que investimos muito na implementação do JIT sobre a infraestrutura do PHP 7. Há boas e más notícias. Bom: como no caso dos experimentos com o JIT, realizados em 2014, obtivemos resultados impressionantes de benchmark com cargas intensivas de CPU. A má notícia é que o JIT em nossos testes não oferece um grande ganho em cargas típicas da Web.
Em outras palavras, diferente da situação de 2014, acreditamos que o JIT não melhorará o desempenho ao processar cargas de trabalho típicas da Web, pois a execução do código PHP não é mais um gargalo.
Mas ainda acho que precisamos incluir o JIT na próxima versão principal do PHP. Por pelo menos dois motivos:
- Isso permitirá que o PHP lide com novos tipos de cargas de trabalho (não na Web).
- PHP , (, PHP-
unserialize()
C).
, , - , -, (
. Badoo: . CPU , CPU ).
, , , JIT OPcache ( ) , .
, , PHP 7.0 JIT-:
https://www.youtube.com/watch?v=dWH65pmnsrI(long-running), , . , , Node.js , . . , PHP , , ReactPHP Swoole.
, - PHP . , - , , Swoole. , , /, . , , . , libuv, , , PHP-.
(Foreign Function Interface)
PHP , ++, . , , , , , . PHP «» , ; — «» , . (
.: ) . TensorFlow PHP, , , PHP:
98%. , JIT PHP , . , ( JIT), , , , .
, JIT PHP 8, . «» PHP, ( FFI). JIT PHP , . , -, ( , ) , .
(.: : « — PHP- PHP; , , request- include/require. , PHP». .), :
- . - , , PHP 8.
- . , , RFC , - .
— , ( — , JIT), PHP 8 PHP 7.3 PHP 7.x. PHP 8 , , , 2—2,5 ( / 2020-). PHP 7.4 - 2019-, , (deprecate) , , PHP 7.3, PHP 8.
PHP 8 7.3, . , , RFC «PHP 8 feature- PHP», 7.4; ( ) . , - ( ), // .
, , «» . , CPU -.
PHP 8 PHP ? .