O.K. So I've written my application and debugged it, and now I want to
try and optimize the speed. I have written a little test script to test
the time of each PHP function that I can use in a certain situation
(ereg, eregi, strpos). Problem is, no matter what I do, the first
function I test in the script is always the slowest, even if I reorder
them so that strpos() is first instead of ereg(). Doesn't matter which
one it is. Maybe I did something stupid and just can't see it? Below
is the code:
// define the stuff to use
$GLOBALS['renderstart'] = 0;
$key = "testkey";
$teststring = "test500";
$test = array(
'testkey' =>
array (
'test50' =>
array (
'main' => 'admin.html',
),
'test500' =>
array (
'main' => 'admin.html',
),
'default' =>
array (
'main' => 'admin.html',
),
),
);
// functions
function start_timer()
{
$mtime = explode(" ", microtime());
$GLOBALS['renderstart'] = $mtime[1] + $mtime[0];
}
function stop_timer()
{
$mtime = explode(" ", microtime());
$renderstop = $mtime[1] + $mtime[0];
$rendertime = ($renderstop - $GLOBALS['renderstart']);
printf(" [ %f seconds ]<br>\n", $rendertime);
}
// test code
$matchlen = 0;
reset($test[$key]);
start_timer();
foreach ($test[$key] as $ops => $vals) {
if ((strlen($ops) > $matchlen) && ereg($ops, $teststring)) {
$modops = $ops;
$matchlen = strlen($modops);
}
}
echo "ereg";
stop_timer();
$matchlen = 0;
reset($test[$key]);
start_timer();
foreach ($test[$key] as $ops => $vals) {
if ((strlen($ops) > $matchlen) && eregi($ops, $teststring)) {
$modops = $ops;
$matchlen = strlen($modops);
}
}
echo "eregi";
stop_timer();
$matchlen = 0;
reset($test[$key]);
start_timer();
foreach ($test[$key] as $ops => $vals) {
if ((strlen($ops) > $matchlen) && ereg($ops, $teststring)) {
$modops = $ops;
$matchlen = strlen($modops);
}
}
echo "strpos";
stop_timer();
Any ideas???
Thanks!
-Shawn
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php