ID: 19971
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Feedback
Bug Type: *Directory/Filesystem functions
Operating System: any
PHP Version: 4.3.0-dev
New Comment:
Please also compare with fgets().
Previous Comments:
------------------------------------------------------------------------
[2002-10-18 06:13:19] [EMAIL PROTECTED]
Please paste readable output...
================================
[yohgaki@dev DEV]$ cat t.php
<?php
$filename = '/var/log/httpd/error_log.1';
require("Benchmark/Timer.php");
$time = new Benchmark_Timer;
$time -> setMarker('Start');
$fp = fopen($filename,'r');
for ($i = 0; $i<100; $i++)
$s = fread($fp, filesize($filename));
fclose($fp);
$time -> setMarker('fread');
for ($i = 0; $i<100; $i++)
$s = file($filename);
$time -> setMarker('file');
$time -> setMarker('Stop');
$time -> display();
?>
[yohgaki@dev DEV]$ ./sapi/cli/php t.php
-------------------------------------------------------------
marker time index ex time perct
-------------------------------------------------------------
Start 1034939438.53591700 - 0.00%
-------------------------------------------------------------
fread 1034939438.55064400 0.014726996421814 2.74%
-------------------------------------------------------------
file 1034939439.07360900 0.52296495437622 97.21%
-------------------------------------------------------------
Stop 1034939439.07387800 0.00026905536651611 0.05%
-------------------------------------------------------------
total - 0.53796100616455 100.00%
-------------------------------------------------------------
[yohgaki@dev DEV]$
------------------------------------------------------------------------
[2002-10-18 04:31:16] [EMAIL PROTECTED]
<?php
require("Benchmark/Timer.php");
$time = new Benchmark_Timer;
$time -> setMarker('Start');
$fp = fopen("access.log", "r");
$s = explode("\n", fread($fp, filesize("access.log") ) ) ;
fclose($fp);
$time -> setMarker('fread');
$s = file("access.log");
$time -> setMarker('file');
$time -> setMarker('Stop');
$time -> display();
?>
access.log 16Mb
fread + explode faster when file(). Hmmm...
time indexex time% Start1034933111.79707300-0.00%
fread1034933112.398477000.60140417.87%
file1034933115.162048002.76357182.12%
Stop1034933115.162183000.0001350.00% total-3.365110100.00%
------------------------------------------------------------------------
[2002-10-18 04:11:52] [EMAIL PROTECTED]
It slow even with text files
Sorry for Photoshop.exe-example
I test it even with apache/logs/access.log
------------------------------------------------------------------------
[2002-10-18 03:53:15] [EMAIL PROTECTED]
file() is not binary safe; you should not use it on binary files.
When testing the snapshot, try the new file_get_contents() function
too, which is 100% binary safe.
$s = file_get_contents();
------------------------------------------------------------------------
[2002-10-18 03:05:02] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php4-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-latest.zip
Ops, wrong quick fix.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/19971
--
Edit this bug report at http://bugs.php.net/?id=19971&edit=1