Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:65881 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 52425 invoked from network); 15 Feb 2013 19:06:57 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Feb 2013 19:06:57 -0000 Authentication-Results: pb1.pair.com smtp.mail=zeev@zend.com; spf=unknown; sender-id=unknown Authentication-Results: pb1.pair.com header.from=zeev@zend.com; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain zend.com does not designate 209.85.214.171 as permitted sender) X-PHP-List-Original-Sender: zeev@zend.com X-Host-Fingerprint: 209.85.214.171 mail-ob0-f171.google.com Received: from [209.85.214.171] ([209.85.214.171:64927] helo=mail-ob0-f171.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 7D/C6-06160-0578E115 for ; Fri, 15 Feb 2013 14:06:56 -0500 Received: by mail-ob0-f171.google.com with SMTP id x4so3934184obh.30 for ; Fri, 15 Feb 2013 11:06:54 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:references:in-reply-to:mime-version:x-mailer :thread-index:date:message-id:subject:to:cc:content-type :x-gm-message-state; bh=Cc6a/d+1oXGbACjyEm0LsSTomDZeAORqnR16JJKrzrk=; b=h+8X1h5secvhc+s5JcU7Lr7ICY5ZWFKdQ2nkdGYsp975VAYv3wFkNO0s6MC683Daey 9GzKhPVHvd0BSLG/AuOl2VZOXg2phfTAtv3mdNlteSypH955dRhaShyqDVDleaLtuymv kO8N/T8sxKJfCTDXmcw+2foIbtpoXS8mpRP/38ExTfpir7QFtVaSkKkq8MFpkjr6CPTk VRKdMcJxmIrsfYwjxHmbVgCa0smVZ89pmiSUfEiz1hW3mWsY2rQsY5u3LFNoHOng24OX JhWhnOuyv6aT0VdfKzA0g07nrQe23ejUl9yt3mSK97snDBmS48O3MATZ+GTuUlck38F1 +ysw== X-Received: by 10.60.20.7 with SMTP id j7mr2581579oee.40.1360955213853; Fri, 15 Feb 2013 11:06:53 -0800 (PST) References: <511BFC81.8020400@oracle.com> <7de2703f77537a47b457c4479a19ac3a@mail.gmail.com> <511D39EF.5060409@oracle.com> In-Reply-To: <511D39EF.5060409@oracle.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQHLvIAlSKZ5OJboBymrD0/yWmCdiQMxVgljATz3XvIBsPoeJphO5O0Q Date: Fri, 15 Feb 2013 21:06:53 +0200 Message-ID: To: Christopher Jones Cc: PHP internals Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQlVua/yPyDXbMAfofqPkyy42jjgeP4Yfd9xeCkuoocNytuEDS5HqNYUUy6xblnnefCsOviwNkDu9VaKqohZDJFJL/QqOHs6KUM1/xHMY169DyLWXHlrK9xOFi58aV4GKlap4lUM Subject: RE: [PHP-DEV] Zend Optimizer+ Source Code now available From: zeev@zend.com (Zeev Suraski) > -----Original Message----- > From: Christopher Jones [mailto:christopher.jones@oracle.com] > Sent: Thursday, February 14, 2013 9:25 PM > To: Zeev Suraski > Cc: PHP internals > Subject: Re: [PHP-DEV] Zend Optimizer+ Source Code now available > > > > On 02/14/2013 07:21 AM, Zeev Suraski wrote: > >> Great to see. > >> > >> The README covers much of the content (and in more detail) that I > >> previously wanted to see in the RFC. > > > > Excellent! > > > >> There are some things still missing from the RFC, though: > >> > >> - do you see Optimizer+ being enabled (if not in PECL) or disabled > >> by > >> default, etc. > > > > I *think* we should strive to have it enabled by default, but it > > should definitely be possible to turn it off too. I guess that can be > > another voting possibility - bundle & turn on by default (vs. just > > bundle). > > To avoid too many voting choices, I think this can be decided outside the > RFC > process. That depends on whether there'll be apparent consensus about it; But it can wait until after that RFC is approved, as a separate discussion and if needed a separate vote. > > We don't want to create any special cases in O+; We would either take > > care of integrating it by having slightly patching our O+ build, or > > we'd add generalized facilities to O+ that will allow the loader to > > interact with it directly (that would not be unique to the Zend loader > > but could be used by any extension). From my point of view, it's > > nice-to-have to solve it before 5.5.0, not a must-have. > > This should still be stated in the RFC. (The PHP community suffers from > poor > RFCs. Since you are a leader in the PHP community, your RFC should set a > good > example.) I think it goes beyond of the scope of the RFC but I'll add a bit of blurb there. > >> - There are still open questions in the RFC; these need to be closed > >> before voting. > > > > I think the only open question is integration with other modules, most > > notably debuggers. This is something we'd like to tackle sooner > > rather than later, and I think it'll be easier to just go ahead and do > > that now that the source code is available. Any other open questions > > that need answering? > > I think this should be reworded before the vote occurs. I'm fine with > leaving it > under a heading "for future investigation", i.e. stating it won't happen > in an > initial release. OK. > >> Comments: > >> > >> - The README gives recommended parameters. Taking that advice at > >> face value, I think these should be default settings. > > > > The default settings are designed to minimize the chance that an app > > or a workflow - which worked fine w/o O+ - will suddenly fail after O+ > > is installed. The 'recommended' settings are for max-performance. > > You can view it like 'Safe' vs. 'Extreme' settings. Personally I > > think the default settings should be closer to the Safe ones... > > We can probably meet in the middle: leave the hard coded defaults as they > currently are, and use those values in the php.ini-development examples. > Php.ini-production can have the values recommended in the README. (Giving > the proposed php.ini settings is another thing the RFC should have...) I actually think that the differences between the 'safe' and 'extreme' settings don't correspond too well to development vs. production. They depend on the nature of the code/app you're running, and not on whether you're developing the code or running it in production. In my opinion, the defaults should be more or less the defaults we have today, perhaps with minor tweaks - but with the guiding principle being that they need to be *safe*, and minimize the chance that semantics would change if you enable/disable O+. The 'recommended' settings, which should really read 'extreme performance settings', should end up in a documentation section, with nice clear warnings about each and every setting and its potential impact on how apps will perform. I'll clarify that in the RFC. > >> - Should the name reflect the code's main purpose (op-code caching), > >> and allowing a future use of "optimizer" for a more sophisticated > >> optimizer implementation? Or do you see Optimizer+ being the > >> framework for such optimizations? > > > > O+ does perform some optimizations in addition to caching code, in a > > O+ pretty > > sophisticated manner actually (block optimizations). Optimizations - > > which can be expensive to carry out - are definitely a good fit with > > an opcode cache, that ensures that you wouldn't have to do these > > optimizations more than once. I'm obviously subjective but I think > > the name Optimizer+ does a good job at suggesting that it's both an > > Optimizer > but also something else. > > Perhaps we should call it OptiCache? :) > > It seems a good time to disambiguate its relationship to any current or > future > Zend product. Agreed. Rasmus and I ping ponged some names and we may want to go with something more generic along the lines of 'OpCache'. It's shorter than the "zend_optimizerplus." prefix we currently have for INI directives; It has the strong implication that it's mostly about caching opcodes; And we could also mention that 'Op' also originates in the Optimizer Plus component this was based on. I suggest that we decouple the decision on naming from the decision on inclusion; There's clear agreement on my part that we can name it differently from 'Zend Optimizer+' so it'd be just a matter of finding a name everyone (or a majority at least) of people are happy with. Updated RFC: https://wiki.php.net/rfc/optimizerplus Zeev