Re: com php-src: Fixes for x32 ABI: Zend/zend_long.h Zend/zend_types.h ext/date/lib/timelib_structs.h ext/standard/file.c ext/standard/streamsfuncs.c
| From: | Dmitry Stogov | Date: | Mon, 25 May 2015 17:29:20 +0000 |
| Subject: | Re: com php-src: Fixes for x32 ABI: Zend/zend_long.h Zend/zend_types.h ext/date/lib/timelib_structs.h ext/standard/file.c ext/standard/streamsfuncs.c | ||
| References: | 1 2 3 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-86923@lists.php.net to get a copy of this message | ||
On Mon, May 25, 2015 at 8:10 PM, Nikita Popov <nikita.ppv@gmail.com> wrote:
> On Mon, May 25, 2015 at 4:30 PM, Dmitry Stogov <dmitry@zend.com> wrote:
>
>> Hi Nikita,
>>
>> I've never able to check PHP on X32. Is it compatible now?
>> Did you see any performance improvement in comparison to x86 and X86_64?
>>
>> Complete X32 support probably needs additional effort to enable global
>> register variables and assembler code conversion...
>>
>
> There are a couple of failing tests, but for practical purposes everything
> works. I've set zend_long size to 64bit, so all the usual x86-64 assembly
> is still correct. (Essentially only using 32bit size_t and pointers.)
> Globals regs also worked out of the box.
>
> Sadly I didn't see an improvement compared to x86-64. bench.php and
> micro_bench.php are around the same. Against WP-4.1 with -T 500 I even got
> a regression: 5.30s on amd64 and 5.45s on x32.
>
Strange. I expected x32 to be faster, just because it should use smaller
data set, and this should lead to less CPU cache misses. For me x86 is
almost always faster than x86_64.
> I could try to use 32bit zend_longs instead, which will require some
> assembly adjustments.
>
Size of zend_long may affect the size of Bucket and as result the overall
memory consumption and performance.
Thanks. Dmitry.
>
> Nikita
>