Re: [RFC] JIT
| From: | Nikita Popov | Date: | Mon, 04 Feb 2019 15:22:59 +0000 |
| Subject: | Re: [RFC] JIT | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-104129@lists.php.net to get a copy of this message | ||
On Mon, Feb 4, 2019 at 4:11 PM Dmitry Stogov <dmitry@zend.com> wrote:
>
>
> On 2/4/19 5:44 PM, Nikita Popov wrote:
> > On Mon, Feb 4, 2019 at 2:26 PM Dmitry Stogov <dmitry@zend.com
> > <mailto:dmitry@zend.com>> wrote:
> >
> >
> >
> > On 2/1/19 4:23 PM, Dmitry Stogov wrote:
> > >
> > >
> > > On 2/1/19 3:09 PM, Nikita Popov wrote:
> > >> On Thu, Jan 31, 2019 at 10:44 AM Dmitry Stogov <dmitry@zend.com
> > <mailto:dmitry@zend.com>
> > >> <mailto:dmitry@zend.com
> > >> <mailto:dmitry@zend.com>>> wrote:
> > >>
> > >> Hi Internals,
> > >>
> > >>
> > >> I'm glad to finally propose including JIT into PHP.
> > >>
> > >>
> > >> https://wiki.php.net/rfc/jit
> > >>
> > >>
> > >> In the current state it may be included both into PHP-8,
> > where we
> > >> are going to continue active improvement, and into PHP-7.4,
> > as an
> > >> experimental feature.
> > >>
> > >>
> > >> Thanks. Dmitry.
> > >>
> > >>
> > >> I would like to check if the JIT provides an improvement for
> > PHP-Parser.
> > >> Unfortunately I'm getting a segfault when running the tests.
> > Should be
> > >> reproducible with
> > >>
> > >> git clone git@github.com:nikic/PHP-Parser.git
> > >> cd PHP-Parser
> > >> composer install
> > >> php-jit vendor/bin/phpunit
> > >>
> > >> I tried to debug this. Unfortunately my gdb doesn't seem to work
> > with
> > >> JIT: It hangs when the script starts running, on line
> > Zend/zend_gdb.c:84
> > >> in zend_gdb_register_code. I don't know if that's a bug or I
> > need to do
> > >> something additional here (I'm using GNU gdb (Ubuntu
> 8.1-0ubuntu3)
> > >> 8.1.0.20180409-git).
> > >
> > > GDB takes enormous time registering too many JIT-ed functions...
> > > It should be possible to catch the name of problematic functions
> > and the
> > > JIT only them (using PHPDOC trigger). I'll try to analyze the
> > crash, but
> > > most probably, only on next week.
> >
> > I fixed the problem caused JIT to fail on PHP-Parser tests (it was
> > related to changes introduced by typed properties patch).
> >
> > I'm also going to disable automatic JIT code registration in GDB.
> >
> > Thanks. Dmitry.
> >
> >
> > Thanks. I was now able to run a PHP-Parser benchmark, which showed ~1.5x
> > speedup with default JIT configuration. That's promising :)
> >
> > Next I want to try https://github.com/amphp/hpack (part of
> > HTTP 2
> > implementation), where I also expect good results. Currently there is a
> > segfault while running tests.
>
> Could you provide a quick instruction, how to reproduce this (in the
> same way like with PHP-Parser).
>
The reproduce steps are basically the same in this case, just on a
different repo:
git clone git@github.com:amphp/hpack.git
cd hpack
composer install
php-jit vendor/bin/phpunit
Nikita