Comments bellow: 

>-----Original Message-----
>
>First, let me thank you all that reviewed the patch.
>When I first sent the patch to the list I didn't meant I 
>wanted it to be integrated with the main php sources. At least 
>before running some benchmarks and double-checking it. That 
>patch was just a quick&dirty write of my initial idea. Its 
>also interesting because I was thinking in extending the patch 
>to the memory management part, too.
>
>About the gcc heuristics on branch prediction.. Well they seem 
>to be somewhat good, but they are just heuristics. Surely gcc 
>can decide about
>this:
>ptr = malloc(3);
>if (!ptr) return NULL;

Yep and CPUs are good at exactly this repetitive case. We checked this also
when we did some MM changes.

>that's pretty obvious that branch isn't likely to execute.. 
>But others might not be so obvious. The Linux kernel and the 
>GNU libc (where performance is really important) have been 
>using similar macros to mark the branch probability.
>
>When I finish my exams, I'll spend some more time tweaking and 
>benchmarking the patch on several computers with different gcc 
>versions and different cpus architectures (my Centrino isn't 
>surely a good place to benchmark server applications..)
>
>Other thing that may raise some concerns is the recent 
>addition of reflection data to internal functions. While it is 
>nice to have it, it may cause too much cache trashing. While 
>previously there was about 10 global ARG_INFO vars, now they 
>have exploded to 1 per function. It may have some impact on 
>performance. But I can't talk too much here, because I don't 
>know if that data is used only in compile time or in run-time 
>(on each function call or similar).

This would be very interesting to find out. It'd be great if you could check
it out.

Andi

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to