PHP 8: Was erwartet Sie? Zeev Suraskys Brief



Hallo, mein Name ist Nikolai Krapivny, ich leite die serverseitige Entwicklungsabteilung bei Badoo. In Badoo ist PHP eine der Hauptsprachen, der größte Teil der Geschäftslogik unseres Systems ist darin geschrieben. Daher verfolgen wir die Nachrichten aus der PHP-Welt, beteiligen uns aktiv an der Entwicklung der Sprache und versuchen, die Community rund um PHP zu entwickeln .

Heute möchte ich eine Übersetzung eines Briefes von Zeev Suraski , einem der Gründer von Zend Technologies, teilen, der die weitere Entwicklung von PHP umreißt und Aufschluss darüber gibt, was wir in PHP 8 erwarten sollten.

Ich wollte etwas später darüber schreiben, aber da sie das Thema PHP 8 angesprochen haben, scheint es an der Zeit zu sein, eine Diskussion zu beginnen.

Ich betone: Der Zweck dieses Schreibens besteht nicht darin, jede von mir erwähnte Änderung im Detail zu erörtern, sondern unsere Pläne zu konsolidieren: Werden wir uns nach 7.3 auf PHP 8 konzentrieren, das auf einigen unserer Forschungsprojekte und experimentellen Entwicklungen basiert.

Es gibt eine Reihe von Bereichen, für deren Entwicklung es meines Erachtens notwendig ist, Ressourcen in der nächsten Hauptversion zu lenken.

Jit


Die meisten von Ihnen wissen wahrscheinlich, dass wir uns viel Mühe gegeben haben, JIT zusätzlich zur PHP 7-Infrastruktur zu implementieren. Es gibt gute und schlechte Nachrichten. Gut: Wie bei den Experimenten mit JIT, die wir 2014 durchgeführt haben, haben wir beeindruckende Benchmark-Ergebnisse mit intensiver CPU-Auslastung erzielt. Die schlechte Nachricht ist, dass die JIT in unseren Tests bei typischen Weblasten keinen großen Gewinn bringt.

Mit anderen Worten, im Gegensatz zu 2014 glauben wir, dass JIT die Leistung bei der Verarbeitung typischer Web-Workloads nicht verbessern wird, da die Ausführung von PHP-Code kein Engpass mehr ist.

Aber ich denke immer noch, dass wir JIT in die nächste Hauptversion von PHP aufnehmen müssen. Aus mindestens zwei Gründen:

  • Dadurch kann PHP neue Arten von Workloads (nicht Web) verarbeiten.
  • 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 ? .

Source: https://habr.com/ru/post/de415359/


All Articles