So I'm not clear on how I am should expect this to work. A simple script:

error_reporting(2047);
print_r($_ENV);

is now completely broken unless you turn on register_long_arrays. If that is expected behaviour, register_long_arrays must be on by default.

Shane


Zeev Suraski wrote:
I wanted to do this for some time, but until recently, it wasn't very feasible, because the order of registration could be designated by the user (gpc_order, variables_order, etc.). Now that register_globals is off by default, and that we have the auto-globals, it's much more feasible.

I implemented this optimization in CVS, so far only for $_ENV and $_SERVER. This alone pushed nearly-empty-page req/sec pages from about 285 to about 400 on my Windows box. I'll look into fixing the other ones later.

Pre-requisites for this optimization to kick in:
1.  register_globals being off
2.  register_long_arrays (HTTP_*_VARS) being off

If you want to benchmark w/ vs. w/o, you can disable the optimization by initializing cb to 0 in php_startup_auto_globals() and jit_initialization to 0 in php_hash_environment(), both in main/php_variables.c.

Zeev

At 18:26 01/03/2003, Sterling Hughes wrote:

Hi,

Analyzing PHP's routines a bit, it seems that the slowest part of a
"generic" request is populating the special arrays, $_ENV, $_GET, etc.

I was wondering if it might be possible to "tie" these arrays to a
function (if you don't understand that, look at Perl for a definition).
One could populate them as an overloaded object, and then array accesses
would work - I guess.  But I would prefer a cleaner mechanism.

This would prevent a costly overhead for elements that don't really need
to be there, and yield only a slight performance cost when accessing
overloaded elements in these arrays.

-Sterling

--
"The computer programmer is a creator of universes for which he
 alone is responsible. Universes of virtually unlimited complexity
 can be created in the form of computer programs."
    - Joseph Weizenbaum


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







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



Reply via email to