Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

PHP 8 implementuje JIT kompiler

PHP 8 implementuje JIT (Just-In-Time) kompiler, mělo by díky tomu být rychlejší v matematických operacích. Webové aplikace to nejspíš zásadně neurychlí.
Musings, ninja ones: PHP GR8
Will the JIT make my website faster ?
In all probability, not significantly.
Maybe not the answer you were expecting: In the general case, applications written in PHP are I/O bound, and JIT works best on CPU bound code.
Technický návrh
PHP: rfc:jit
PHP JIT is implemented as an almost independent part of OPcache. It may be enabled/disabled at PHP compile time and at run-time. When enabled, native code of PHP files is stored in an additional region of the OPcache shared memory and op_array→opcodes[].handler(s) keep pointers to the entry points of JIT-ed code. This approach doesn't require engine modification at all.
We use DynAsm (developed for LuaJIT project) for generation of native code. It's a very lightweight and advanced tool, but does assume good, and very low-level development knowledge of target assembler languages.
The quality of the JIT may be demonstrated on Mandelbrot benchmark published at https://gist.github.com/dstogov/12323ad13d3240aee8f1, where it improves performance more than 4 times (0.011 sec vs 0.046 sec on PHP 7.4).
30. 4. 2019 23:16:15
https://webtrh.cz/diskuse/php-8-implementuje-jit-kompiler/#reply1399481
Václav Hodek
verified
rating uzivatele
(9 hodnocení)
30. 4. 2019 23:57:08
Ty jejich benchmarky jsou dost směšné. Skoro to vypadá jako by PHP bylo nějaký zázrak v rychlosti. Proč používá PHP verze benchmarků bufferování výstupu a ostatní ne?
Stačí si s tím trochu pohrát a třeba u Javy je naprosto jasné, že více než polovinu času to stráví vypisováním a nikoliv výpočtem. Tj. stačí přidat bufferování výstupu a hned mám čas asi 3x lepší.
Jen na zkoušku jsem zkusil taky zkompilovat C verzi s -O2 a dostal jsem stejný čas, co tam mají oni. Tj. asi 0.013. Vyhodil jsem ty printf a jsem na 0.000...
Ty benchmarky paradoxně ukazují na to, jak je PHP bez JIT děsivě pomalé oproti všemu ostatnímu. A vzhledem k tomu, že JIT bude mít jenom velmi malý vliv podle jejich vlastních slov, tak ta rychlost je tristní.
30. 4. 2019 23:57:08
https://webtrh.cz/diskuse/php-8-implementuje-jit-kompiler/#reply1399480
Benchmark lze použít pro srovnání verzí PHP mezi sebou.
1. 5. 2019 21:51:48
https://webtrh.cz/diskuse/php-8-implementuje-jit-kompiler/#reply1399479
Pro odpověď se přihlašte.
Přihlásit