PIII 400MHz, 512Mb, SuSe 6.4, 2.2.14 smp, php 3.0.16, Completed in
0.76187908649445 seconds
PIII 350MHz, 256Mb, Suse 7.3, 2.4.9, php 4.0.6, Completed in
2.6342689990997 seconds
File Size:28537kb,
But for "real tests", send the original file you use direct
BTW How the hell did you develop this monstrous eregi?
For better maintenance, I�d cut it in several pieces,
or first make the inputfile smaller using grep " a href" > to test.file ,
This will reduce
fileaccess a lot, and takes microseconds to proceed.
Oliver
At 06.04.2002 15:01, you wrote:
>
>Im using a regular expression, to get all urls from a file.
>When using it on the webserver, it processes a 25kb html file
>about 0.25 seconds (PIII 350, 128mb ram, linux 2.2.13-7mdk, php 3.0.12).
>
>When i try the same on my machine (Celeron 300A, 192mb ram.), it does it
>about 14-17 seconds, which is about 60-70 times slower.
>Tested it on:
>redhat 7.2, php 4.1.1 - 16 seconds
>windows 98, php 4.1.1 - 14 seconds
>windows 98, php 3.0.12 - 17 seconds.
>
>The machine speed differences arent that big, especially considering
>that other(simpler) regexps run at the almost the same speed (20-30%
>difference).
>
>Where can this enourmous speed difference come from
<snip>
Anyone care to test it on there machine? Full code (20 lines) with
>timing function would be:
><?
>function getmicrotime(){
> list($usec, $sec) = explode(" ",microtime());
> return ((float)$usec + (float)$sec);
> }
>//change to some html file around 25kb in size
>$lines = @file('test.html');
>if (is_array($lines))
> {
> while (list($id,$line) = each($lines))
> $file .= $line;
> }
>
>$start_time=getmicrotime();
>
>while
>(eregi("(<frame[^>]*src[[:blank:]]*=|href[[:blank:]]*=|http-equiv=['\"]refresh['\"]
>*content=['\"][0-9]+;url[[:blank:]]*=|window[.]location[[:blank:]]*=|window[.]open[[:blank:]]*[(])[[:blank:]]*[\'\"]?(([[a-z]{3,5}://(([.a-zA-Z0-9-])+(:[0-9]+)*))*([:%/?=&;\\,._a-zA-Z0-9-]*))(#[.a-zA-Z0-9-]*)?[\'\"
>]?",$file,$regexp))
> {
> print $regexp[2]."\n";
> $file=str_replace($regexp[0], "", $file);
> }
>$end_time = getmicrotime()- $start_time;
>print "Completed in ".$end_time." seconds";
>?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php