Richard Lynch wrote:
On Tue, August 23, 2005 12:48 am, Jasper Bryant-Greene wrote:
Kim Steinhaug (php list) wrote:
I'm using this method, works fine with 50mb+ files :
if( $fd = fopen ($filepath, 'r')){
while(!feof($fd)) {
$buffer = fread($fd, 2048);
print $buffer;
}
fclose ($fd);
exit;
}
Is there a reason why you assign the output of fread() to a variable
and
then print it? Why not just:
print(fread($fd, 2048));
which would be faster because it doesn't need to assign to a variable,
wouldn't it? Maybe I'm missing something..
You're not missing anything, but a 2 K string buffer assignment/print
is probably not gonna save much...
Benchmark it both ways and see.
I benched this with a 100 MiB text file (largest I could find at short
notice). Buffer used for fread() calls was 2 KiB as above.
Values are averaged over 100 runs (I would have liked to do more, but I
don't have time). All values are to 4 significant figures.
Assigning to a variable and then printing took 0.5206 sec
Printing directly without assigning to any variable took 0.5178 sec
readfile() took 0.4632 sec
print(file_get_contents()) took 0.7037 sec
Therefore, readfile() is the fastest, print(file_get_contents()) most
definitely the slowest, and it makes ****-all difference between
assigning the buffer to a variable and not, at least for files around
100 MiB.
Jasper
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php