On Thu, Oct 7, 2010 at 8:09 PM, Scott Nichol <snicholn...@scottnichol.com>wrote:

> In comparing the performance of PHP 5.2.5 file_exists calls versus C stat
> calls, I discovered via Windows sysinternals
> ProcessMonitor that PHP seems to do a stat on each component of a file
> path.  For example,
> file_exists("e:\\wamp\\www\\ra-v2\\system\\application\\libraries\\MY_Controller.php")
> appears to stat "E:\wamp", "E:\wamp\www",
> etc., finally getting to the file.  That compares to doing _stat64 of
> "e:\\wamp\\www\\ra-v2\\system\\application\\libraries\\MY_Controller.php"
> in C, which just does the stat on the file.  The timings
> from my tests show the C app finishing in about one-seventh the time, which
> is what I would expect from the PHP code doing seven
> times as many stat calls.
>
> Assuming my inference about all the stat calls is correct, is there a
> rationale for this?  If the PHP app I am working on made just
> a couple of file_exists calls, I would not bother to ask, but it uses the
> CodeIgniter framework which is doing >100 file_exists
> calls for each page being accessed, so the affect is very noticeable.
>
> FYI, I poked around the PHP SVN web interface for a while and found
> php_check_open_basedir_ex called in plain_wrapper.c, which I
> suspect causes the calls, but ran out of steam before confirming the cause
> of the behavior.
>
> TIA
> --
> Scott Nichol
>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Hi.

This was discussed before.
see
http://www.mail-archive.com/internals@lists.php.net/msg37211.html

Tyrael

Reply via email to