Re: #19771 - patch
| From: | Yasuo Ohgaki | Date: | Fri, 18 Oct 2002 13:30:09 +0000 |
| Subject: | Re: #19771 - patch | ||
| References: | 1 2 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-89719@lists.php.net to get a copy of this message | ||
Yasuo Ohgaki wrote:
Tal Peer wrote:Never mind. There is stupid mistake in the script... It should be Ok. [yohgaki@dev DEV]$ ./sapi/cli/php t.php -------------------------------------------------------------------------hello, this patch tries to fix the performance issues described in bug #19771. i cannot benchmark this at the moment, so if anyone can, please do. the patch is available at http://tal.madcode.org/file.c.patch and thanks to wez :)Getting better, but it still too slow somehow...
marker time index ex time perct-------------------------------------------------------------------------
Start 1034947649.40024700 - 0.00%-------------------------------------------------------------------------
fread 1034947649.82932800 0.42908096313477 44.84%-------------------------------------------------------------------------
file 1034947650.23224900 0.40292108058929 42.11%-------------------------------------------------------------------------
file_get_contents 1034947650.32007600 0.08782696723938 9.18%-------------------------------------------------------------------------
fgets 1034947650.35698600 0.036910057067871 3.86%-------------------------------------------------------------------------
Stop 1034947650.35716300 0.00017690658569336 0.02%-------------------------------------------------------------------------
total - 0.956915974617 100.00%------------------------------------------------------------------------- [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'); for ($i = 0; $i<100; $i++) { $fp = fopen($filename,'r'); $s = explode("\n", fread($fp, filesize($filename))); fclose($fp); } $time -> setMarker('fread'); for ($i = 0; $i<100; $i++) $s = file($filename); $time -> setMarker('file'); for ($i = 0; $i<100; $i++) $s = file_get_contents($filename); $time -> setMarker('file_get_contents'); for ($i = 0; $i<100; $i++) { $fp = fopen($filename,'r'); //$s = explode("\n", fgets($fp,filesize($filename))); $s = explode("\n", fgets($fp)); fclose($fp); } $time -> setMarker('fgets'); $time -> setMarker('Stop'); $time -> display(); ?> [yohgaki@dev DEV]$