Hi @internals,

I'm glad to say that we have started a new JIT for PHP project and hope to 
deliver some useful results for the next PHP version (probably 8.0).
We are very early in the process and for now there isn't any real performance 
improvement yet.  So far we spent just 2 weeks mainly working on JIT 
infrastructure for x86/x86_64 Linux (machine code generation, disassembling, 
debugging, profiling, etc), and we especially made the JIT code-generator as 
minimal and simple as possible. The current state, is going to be used as a 
starting point for research of different JIT approaches and their usability for 
PHP.

The code is available at: 
https://github.com/zendtech/php-src/tree/jit-dynasm/ext/opcache/jit

The sources may be built and tested as regular PHP (no any special external 
dependencies required).
JIT itself is implemented as a part of Opcache.
You may try it in action:

sapi/cli/php -d opcache.jit_buffer_size=32M Zend/bench.php
sapi/cli/php -d opcache.jit_buffer_size=32M -d opcache.jit_debug=1 
Zend/bench.php 2>&1 | less

As I mentioned we didn't try to achieve any real performance improvement yet, 
although we do currently see 20% speedup on bench.php, but a bit of a slowdown 
on real-life apps.

Wish us luck :)

Thanks. Dmitry.

Reply via email to