Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:86859 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 56777 invoked from network); 25 Jun 2015 06:42:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Jun 2015 06:42:08 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.213.181 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.213.181 mail-ig0-f181.google.com Received: from [209.85.213.181] ([209.85.213.181:34715] helo=mail-ig0-f181.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 30/90-52307-CB2AB855 for ; Thu, 25 Jun 2015 02:42:08 -0400 Received: by igcsj18 with SMTP id sj18so1703287igc.1 for ; Wed, 24 Jun 2015 23:42:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=PrPV9UV13NPatTvMRkn3maYchLpqlk7nN6rBS7KPgoE=; b=KFBZ8+NOgRVnU1JOfNjD8TJXntREg83A81vo7MQ5gjIfhsxh8LPln1IzU5rwV+M5we 0SGLKWDRi7byzIp1SiPs5NnBjLDs2GhhYzvlGjYLfDWrW1yPAtBTTuFRnSHI0ft8VUAt GcrRFNGJOh27feqjj2xAIGRqBPShPdpC83R6/elKbEJS0qVW+x3gdX28q/Vk/Dpsqpod U76ec/fcR6WlTjg7Q4p0axDXGYxZ9b3gq0QXfoZQnNXQQ2A9SUGZ2N7KqrEGNRKvEb+L WjjbBHW/cnph6/WWpe1iBKwSw1KwKucqaplRyMO9Osa3QvI7SqxD9lrUNB2H+wILDg/W cuxw== X-Gm-Message-State: ALoCoQnZtyDTzEg9R8zyIA84QI737Jv8mi/1qM8tjAn7xxbSi3X2aBC7yMcpo9Szto0g5YUjx7gHeoCcVqzxMIb3JSj8+yqdZmJZr4OswUAIcn1Fv6AsuM/2TR+reZ0i2j2wbl6wzqkxqhWqJUwNk54jlelbCdl2XbE9qn6Kld23uYk/PAj6OBQ= MIME-Version: 1.0 X-Received: by 10.43.76.195 with SMTP id zf3mr41102385icb.62.1435214521333; Wed, 24 Jun 2015 23:42:01 -0700 (PDT) Received: by 10.50.51.161 with HTTP; Wed, 24 Jun 2015 23:42:01 -0700 (PDT) In-Reply-To: <051CB45EE4B24C7C88C3EABC7E8EE0A2@pc1> References: <051CB45EE4B24C7C88C3EABC7E8EE0A2@pc1> Date: Thu, 25 Jun 2015 09:42:01 +0300 Message-ID: To: Matt Wilmas Cc: Ferenc Kovacs , Yasuo Ohgaki , PHP Internals Content-Type: multipart/alternative; boundary=001a113321eeb897b4051951eb76 Subject: Re: [PHP-DEV] Move to Fast ZPP? From: dmitry@zend.com (Dmitry Stogov) --001a113321eeb897b4051951eb76 Content-Type: text/plain; charset=UTF-8 On Wed, Jun 24, 2015 at 1:35 PM, Matt Wilmas wrote: > Hi Dmitry, all, > > > ----- Original Message ----- > From: "Dmitry Stogov" > Sent: Wednesday, June 24, 2015 > > We should NOT use it everywhere. It'll lead to code bloat. > > Thanks. Dmitry. > > On Wed, Jun 24, 2015 at 12:21 PM, Ferenc Kovacs wrote: > > On Wed, Jun 24, 2015 at 3:42 AM, Yasuo Ohgaki wrote: >> >> > Hi all, >> > >> > I'm wondering the state of Fast ZPP. >> > https://wiki.php.net/rfc/fast_zpp >> > >> > Last year's Dmirty's commit message say, it should >> > only applied to most used functions due to the state of >> > Fast ZPP. >> > >> > commit 27f38798a1963de1c60aae4ef8a3675138255574 >> > Author: Dmitry Stogov >> > Date: Fri Jul 11 16:32:20 2014 +0400 >> > >> > Fast parameter parsing API >> > >> > This API is experimental. It may be changed or removed. >> > It should be used only for really often used functions. >> > (Keep the original parsing code and wrap usage with #ifndef > >> FAST_ZPP) >> > >> > >> > Are we supposed to convert anything to Fast ZPP now? >> > What about the #ifndef FAST_ZPP? Is this required now? >> > >> > BTW, if we are supposed to use only Fast ZPP, >> > https://github.com/php/php-src/blob/master/README.PARAMETER_PARSING_API >> > should be updated. >> > >> > Regards, >> > >> > -- >> > Yasuo Ohgaki >> > yohgaki@ohgaki.net >> > >> >> it was meant as a performance optimization for the most heavy/hot >> codepaths. >> What gave you the idea that the situation changed and we should use it >> everywhere? >> > > Right, FAST_ZPP makes code larger, inlining stuff in each function, etc. > > But I was wondering, is there any more that can be done to optimize the > slowness of the traditional ZPP? I don't recall any changes being made to > it in the last 12-18 months to speed it up at all... > > Is there a particular part that's making it slow? Is it the *string* of > param types? Is it the va_arg's, that doesn't allow the call to be > optimized as well and/or the arg fetching that's slow? > > I know there were the syntax issues as well, but would using something > like a single param (array pointer) for param types/values help at all? > > Or is it just the internals of ZPP that are inherently slow...? :-/ Or > that's fine but the "mechanism" of getting there is the issue? > The traditional ZPP is actually a et another interpreter that reads specification string char by char and perform actions. And interpreters are usually slower. I think it may be improved, but I don't expect significant overall improvement because of that. Now, the cumulative overhead of traditional ZPP on wordpress is ~0.4%. Even if we make it 2 times faster, we may get just 0.2% overall speed up. Thanks. Dmitry. > > > Thanks, > Matt > --001a113321eeb897b4051951eb76--