Runtime-JIT, the whole enchilada
| From: | Sara Golemon | Date: | Wed, 24 Jan 2007 19:58:14 +0000 |
| Subject: | Runtime-JIT, the whole enchilada | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-27639@lists.php.net to get a copy of this message | ||
Dmitry-
You asked for it, you get it :) Hopefully it'll be self-explanatory,
the one part I hope you don't notice is that I put the auto_global check
back into fetch_simple_variable_ex in order to force direct access to
autoglobals ($foo = $_GET; foreach($_POST as ...) etc...) as
non-auto-globals. Ultimately this made catching the difference between
a whole var access and a dim/obj access much more straight-forward and
computationally cheap. It comes at a slight cost for those fetches, but
hopefully they're in the minority.
Bench numbers with this patch:
simple 0.461
simplecall 1.985
simpleucall 2.900
simpleudcall 3.488
mandel 2.136
mandel2 3.192
ackermann(7) 3.490
ary(50000) 0.154
ary2(50000) 0.137
ary3(2000) 1.076
fibo(30) 9.766
hash1(50000) 0.423
hash2(500) 0.307
heapsort(20000) 0.799
matrix(20) 0.526
nestedloop(12) 0.866
sieve(30) 0.630
strcat(200000) 0.303
------------------------
Total 32.639
-Sara