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