Re: [VOTE] [RFC] 64 bit platform improvements for string length and integer

From: Date: Tue, 13 May 2014 22:52:21 +0000
Subject: Re: [VOTE] [RFC] 64 bit platform improvements for string length and integer
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-74149@lists.php.net to get a copy of this message
Anatol,

We discussed your patch in private and I showed you the big penalty it
makes...
I really, don't see, what do you like to achieve initiating voting right
after that. :(

I've just take a quick look over your initial patch for phpng at
https://gist.github.com/weltling/a941d8cf6c731640b51f

Actually, I would support only one idea from your patch - make IS_LONG to
be 64-bit on _WIN64.

Your zend_size_t related changes, in my opinion, makes little sense and
actually makes more harm. I recompiled phpng with your patch on Linux
x86_64 and got the following numbers:

zend_string size increased from 24 to 32 bytes
HashTable size increased from 56 to 72 bytes
zend_op_array size increased from 248 to 264 bytes
zend_class_entry size increased from 512 to 568 bytes
size of each opcode sizeof(zend_op) from 48 to 56 bytes

Anyone may recompile phpng (with and without patch) and then get these
number running
$ gdb sapi/cli/php
> p sizeof(zend_string)
...

Can you imagine memory consumption difference on a large application?
More memory usage => more CPU cache misses => worse performance.

and what are the advantages? strings and class names > 2GB?
For me it's too big payment for useless feature.

-1

Thanks. Dmitry.




On Wed, May 14, 2014 at 12:51 AM, Anatol Belski <anatol.php@belski.net>wrote:

> Hi,
>
> as announced previously, the vote starts on May 13th and ends on May 20th.
>
> https://wiki.php.net/rfc/size_t_and_int64_next#vote
>
> The RFC is considered approved with 50%+1 acceptance. Happy voting :)
>
> Best regards
>
> Anatol
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


Thread (87 messages)

« previous php.internals (#74149) next »