Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:70493 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 467 invoked from network); 3 Dec 2013 16:18:48 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Dec 2013 16:18:48 -0000 Authentication-Results: pb1.pair.com header.from=hannes.magnusson@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=hannes.magnusson@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.192.175 as permitted sender) X-PHP-List-Original-Sender: hannes.magnusson@gmail.com X-Host-Fingerprint: 209.85.192.175 mail-pd0-f175.google.com Received: from [209.85.192.175] ([209.85.192.175:40519] helo=mail-pd0-f175.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 6F/08-61528-8640E925 for ; Tue, 03 Dec 2013 11:18:48 -0500 Received: by mail-pd0-f175.google.com with SMTP id w10so20204736pde.6 for ; Tue, 03 Dec 2013 08:18:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Y/IdSMzWcFy1ZtByittR/bc17GWTZcFhuyj/uUC4V+Q=; b=TvhkQtonl72EtFHQNMV4bRaBh6OSTsRhjtM6phbEDVfBrbL7Asa2eD0wAGTpDNIO1p uqdNy1xNq8MmCrBHiTetmPPPUfNE/udtteJRsHkbaz8aWWIk0Y67ehyFgOOOJbsV3XYO Jp90ray0UsCCisabiRHZHFF2I/q7Vv7a0fBL21jorlt/TX0YSQeKqaBHva21ffg226+P HQM2lZ6+ieDIkKNOlgsfjsm1/pnfw2biaQABVg83f9vUDdus3U03YNP7SW1mbw/fcO6w q/pfkG296CQ/rlFOM1YivswIdS8rx7wAM6T59OOhnymfOYUe7NOQKmeylYBY72gdFkF6 J5QQ== MIME-Version: 1.0 X-Received: by 10.66.147.193 with SMTP id tm1mr76684732pab.56.1386087525411; Tue, 03 Dec 2013 08:18:45 -0800 (PST) Received: by 10.68.183.4 with HTTP; Tue, 3 Dec 2013 08:18:45 -0800 (PST) In-Reply-To: <759ccd0f06663defc84ffee473b51210@mail.gmail.com> References: <529D1197.5000305@nebm.ist.utl.pt> <8BCA5A38-788B-4E6A-A6AC-1A8DCBA3D8D9@zend.com> <759ccd0f06663defc84ffee473b51210@mail.gmail.com> Date: Tue, 3 Dec 2013 08:18:45 -0800 Message-ID: To: Zeev Suraski Cc: Andi Gutmans , Gustavo Lopes , Laruence , Dmitry Stogov , PHP Internals , Gadi Goldbarg Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [PHP-DEV] strtr() performance degradation From: hannes.magnusson@gmail.com (Hannes Magnusson) On Tue, Dec 3, 2013 at 12:29 AM, Zeev Suraski wrote: >> -----Original Message----- >> From: Hannes Magnusson [mailto:hannes.magnusson@gmail.com] >> Sent: Tuesday, December 03, 2013 9:34 AM >> To: Andi Gutmans >> Cc: Gustavo Lopes; Laruence; Dmitry Stogov; PHP Internals; Zeev Suraski; >> Gadi Goldbarg >> Subject: Re: [PHP-DEV] strtr() performance degradation >> >> On Mon, Dec 2, 2013 at 10:54 PM, Andi Gutmans wrote: >> > >> > On Dec 2, 2013, at 3:02 PM, Gustavo Lopes >> wrote: >> >>> =E2=89=88 >> >> >> >> The progress consists of writing of scripts to test the point where t= o >> >> switch >> algorithms and trying some improvements on the old one without as >> expensive preprocessing steps. >> >> >> >> Now, this was in the summer... I'll have some time in the holidays to >> >> pick >> up this and some other PHP-related backlog; that said, if there's some >> impatience (which would be perfectly understandable...), I wouldn't mind >> if >> someone reverted to the previous state in the meantime. >> > >> > Sounds like this may take some time to figure out. So if there is >> > absolutely >> no difference in semantics between the two I would suggest we revert unt= il >> you are able to dig into this. >> > >> >> >> This change was included in 5.4.12 and 5.4.22 has been released. >> Now you want to revert and maybe release 5.4.23 and then apply again in >> 5.4.24? >> >> That doesn't seem worth it. What done is done. Had it been reverted righ= t >> away then it would have make sense, but not 10 releases later? > > Hannes, > > To put things in perspective, the work that goes into improving PHP's > performance by 10% is measured in months, sometimes more (from inception = to > production). Here, we have a patch that slowed real world apps (not > synthetic benchmarks) by over 10%, and despite the fact it was reported 6 > months ago, we've done absolutely nothing about it. If anything in that > story doesn't make sense, that would be it. Agreed. The release manager messed up. He should have been paying attention and never shipped the release. And oddly enough, the 5.5.0 release (released just couple of weeks after the initial mail in this thread) also included this wrong-fix without anyone caring. And to this date, I am unable to find a bug report complaining about a slow= down. > As to when we reintroduce it - I think it's absolutely fine that we don't > reintroduce it in the 5.4.x series, or even the 5.5.x series, but slate i= t > to 5.6.0 - and that too only if it's fully-baked by the time 5.6.0 is rea= dy. I think optimizations of this kind shouldn't be committed into bugfix releases anyway. We are rolling out bugfix releases these days like we are trying to catch up with browser versions, and minor releases so frequently that kids use to to learn how to count. Optimizations should be considered a major feature and only added to .0 releases so this doesn't happen. > We've all experienced first-hand what a complete rewrite of a very popula= r > piece of code can do, and the fact that compatibility can be broken not j= ust > by changing behavior, but also by radically changing the algorithm in a w= ay > that produces very negative performance side effects. Performance should= be > one of the measures by which we weigh compatibility - a major regression = in > performance shouldn't be acceptable any more than a major regression in > functionality. Completely agree, further strengthening my argument that bugfix releases should be left out of this. > > We should revert this patch ASAP; It's unfortunate we haven't done it ba= ck > when it was found but better late than never. I don't know... Noone cared when it was released, noone has reported a ticket, can't we leave stable branches stable and fix this in the upcoming minor release? -Hannes