Re: [RFC] Fast Parameter Parsing API

From: Date: Wed, 28 May 2014 14:29:41 +0000
Subject: Re: [RFC] Fast Parameter Parsing API
References: 1 2 3 4 5 6 7 8  Groups: php.internals 
Request: Send a blank email to internals+get-74578@lists.php.net to get a copy of this message
Again, we've already talked about the syntax a bit.

We have also other possibilities like:
zend_parse_parameters(Z_PARAM_ARRAY(input) Z_PARAM_LONG(offset) Z_PARAM_OPTIONAL
Z_PARAM_ZVAL(z_length) Z_PARAM_BOOL(preserve_keys))
Or even shorter:
zend_parse_parameters(ZP_ARRAY(input) ZP_LONG(offset) ZP_OPTIONAL ZP_ZVAL(z_length)
ZP_BOOL(preserve_keys))
I think especially the latter is nicely readable and relatively short.

I updated the RFC with those above
And I've changed voting choices a bit:
https://wiki.php.net/rfc/fast_zpp#proposed_voting_choices

Am 28.5.2014 um 14:57 schrieb Zeev Suraski <zeev@zend.com>:
> FWIW, if we use it only in a small subset of the functions that we deem
> performance-sensitive, I think it makes a whole lot more sense.
> 
> I can think that we can live with the inflation in CAPS and lines if it’s
> limited to just a few dozen functions.  It needs to be clear in the RFC
> though.
> 
> 
> 
> Zeev
> 
> 
> 
> *From:* Dmitry Stogov [mailto:dmitry@zend.com]
> *Sent:* Wednesday, May 28, 2014 3:40 PM
> *To:* Zeev Suraski
> *Cc:* Derick Rethans; Johannes Schlüter; Andrea Faulds; PHP Internals; Bob
> Weinand; Stas Malyshev; Xinchen Hui; Andi Gutmans; Nikita Popov
> *Subject:* Re: [PHP-DEV] [RFC] Fast Parameter Parsing API
> 
> 
> 
> ~70 functions are in the patch.
> 
> they selected using profiler feedback from Wordpress home page.
> 
> Few functions are selected just to test rare argument specifiers (like 'C').
> 
> We may convert few more functions profiling other apps.
> 
> Thanks. Dmitry.
> 
> 
> 
> 
> 
> On Wed, May 28, 2014 at 4:24 PM, Zeev Suraski <zeev@zend.com> wrote:
> 
> Are there specific functions you think we should use it that could give us
> a 80/20 gain?
> 
> 
> 
> I didn’t think of it as an optimization we’d only use in ‘sensitive’
> functions, but about wholesale migration from the current APIs to new ones.
> 
> 
> 
> Zeev
> 
> 
> 
> *From:* Dmitry Stogov [mailto:dmitry@zend.com]
> *Sent:* Wednesday, May 28, 2014 3:13 PM
> *To:* Derick Rethans
> *Cc:* Johannes Schlüter; Andrea Faulds; PHP Internals; Bob Weinand; Stas
> Malyshev; Zeev Suraski; Xinchen Hui; Andi Gutmans; Nikita Popov
> *Subject:* Re: [PHP-DEV] [RFC] Fast Parameter Parsing API
> 
> 
> 
> This API was designed to solve the existing bottleneck (5% CPU time lose).
> 
> It's not proposed to be used in all functions, only in few really affected.
> 
> Anyone may have their own opinion about readability (someones like Perl,
> others Ada).
> 
> I appeal to think not about subjective readability, but about the cost of
> ownership for @internals and PHP users.
> 
> Thanks. Dmitry.
> 
> 
> 
> On Wed, May 28, 2014 at 3:49 PM, Derick Rethans <derick@php.net> wrote:
> 
> On Fri, 23 May 2014, Johannes Schlüter wrote:
> 
>> On Fri, 2014-05-23 at 13:52 +0100, Andrea Faulds wrote:
>>> On 23 May 2014, at 12:36, Dmitry Stogov <dmitry@zend.com> wrote:
>>> 
>>>> Please take a look at https://wiki.php.net/rfc/fast_zpp
>>>> 
>>>> Thanks. Dmitry.
>>> 
>>> This looks like a great idea. I like how it’s not only faster, but
>>> it seems to be more readable.
>> 
>> More readable? - I feel exactly the opposite. Yes, we get rid of void
>> pointers but use a pattern easy to understand. This looks like macro
>> hell.
> 
> I don't find it more readable either. From a single line, it goes to 7,
> and what if there are three different zpp calls (like in
> https://github.com/php/php-src/blob/master/ext/date/php_date.c#L4393)
> ?
> 
> I know the old API is not going away, but I'm not just sure about this
> one...
> 
> 
> 
>> If we break APIs anyways: Can't we go for C++ which allows providing
>> high level APIs with high performance ...
> 
> no :-)
> 
> cheers,
> Derick
> 
> --
> http://derickrethans.nl | http://xdebug.org
> Like Xdebug? Consider a donation: http://xdebug.org/donate.php
> twitter: @derickr and @xdebug
> Posted with an email client that doesn't mangle email: alpine



Bob






Thread (52 messages)

« previous php.internals (#74578) next »