Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:96615 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 11196 invoked from network); 26 Oct 2016 13:47:18 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Oct 2016 13:47:18 -0000 Authentication-Results: pb1.pair.com header.from=anatol.php@belski.net; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=anatol.php@belski.net; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain belski.net from 85.214.73.107 cause and error) X-PHP-List-Original-Sender: anatol.php@belski.net X-Host-Fingerprint: 85.214.73.107 klapt.com Received: from [85.214.73.107] ([85.214.73.107:44893] helo=h1123647.serverkompetenz.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id ED/4A-24108-4E3B0185 for ; Wed, 26 Oct 2016 09:47:17 -0400 Received: by h1123647.serverkompetenz.net (Postfix, from userid 1006) id B43CF784A0B; Wed, 26 Oct 2016 15:47:13 +0200 (CEST) Received: from w530phpdev (p54A77119.dip0.t-ipconnect.de [84.167.113.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by h1123647.serverkompetenz.net (Postfix) with ESMTPSA id 792EC784024; Wed, 26 Oct 2016 15:47:11 +0200 (CEST) To: "'Dmitry Stogov'" , "'PHP internals list'" Cc: "'Zeev Suraski'" , "'Xinchen Hui'" References: ,<03e001d22f76$af148650$0d3d92f0$@belski.net> In-Reply-To: Date: Wed, 26 Oct 2016 15:47:07 +0200 Message-ID: <046201d22f8f$73ac34a0$5b049de0$@belski.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQH7zWb7xb842b4LLn7awYuyPa4DVQHVaxBHAjKsEyegRz+r8A== Content-Language: en-us Subject: RE: [PHP-DEV] JIT for PHP project From: anatol.php@belski.net ("Anatol Belski") Hi Dmitry, Thanks for the info. Probably I'm just too curious :) Please count on me once it becomes relevant to hand out some part. Regards Anatol > -----Original Message----- > From: Dmitry Stogov [mailto:dmitry@zend.com] > Sent: Wednesday, October 26, 2016 1:31 PM > To: Anatol Belski ; 'PHP internals list' > > Cc: Zeev Suraski ; Xinchen Hui > Subject: Re: [PHP-DEV] JIT for PHP project > > Hi Anatol, > > > The project is in the very early development stage. > > Now, JIT passes almost all PHPT tests, makes 3 times speed-up on bench.php > and no significant difference on real-life apps (+/-5% depended on opcache.jit > setting. > > We are hardly working, implementing new ideas... > > > I think it's too early to port this to Windows. Once, we think, we are ready, I'll > ask your help. > > I suppose we won't need ELF->COFF porting, because we construct ELF objects > just to debug JITed code in GDB and read PHP ELF object for simple symbol > resolution in disassembler (most probably, both won't work on Windows > anyway). > > zend_jit_x86.dasc will have to be adopted to support Windows calling > convention, of course. > > > Thanks. Dmitry. > > > > > > ________________________________ > From: Anatol Belski > Sent: Wednesday, October 26, 2016 1:49:49 PM > To: Dmitry Stogov; 'PHP internals list' > Cc: Zeev Suraski; Xinchen Hui > Subject: RE: [PHP-DEV] JIT for PHP project > > Hi Dmitry, > > > -----Original Message----- > > From: Dmitry Stogov [mailto:dmitry@zend.com] > > Sent: Thursday, September 1, 2016 1:57 PM > > To: PHP internals list > > Cc: Zeev Suraski ; Xinchen Hui > > Subject: [PHP-DEV] JIT for PHP project > > > > 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 :) > > > I just wanted to ask about the status. After starting to do some basic work > https://github.com/zendtech/php-src/compare/jit-dynasm...weltling:jit-dynasm > I've stumbled upon a couple of things > > - in zend_elf.c, the current binary that loads php is being read in, I guess this part > needs to be ported to parse the Windows COFF format > - with DynASM, seems zend_jit_x86.dasc will need to be extended for some > compatibility, please correct if I'm wrong > > Regarding these, maybe you've one or another tip for me? Is this still relevant? > Or I jump into it too early? > > Thanks > > anatol > >