On Fri, Mar 20, 2015 at 12:09 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: > On 03/19/2015 01:26 PM, Eric Stenson wrote: >> PHP Internals folks-- >> >> We're doing some performance work in WinCache, and we're finding that some >> frameworks are...uh...enthusiastically using file_exists(), is_file() and >> is_dir() functions on files/directories that don't exist. Every. Single. >> Pageload. >> >> Does the PHP stat cache include negative cache entries? If not, why not? >> >> Are there any existing extensions that implement a negative cache for >> file_exists(), is_file(), et. al.? > > We do not do negative caching. This is documented at > http://php.net/manual/en/function.clearstatcache.php where it says: > > You should also note that PHP doesn't cache information about > non-existent files. So, if you call file_exists() on a file that > doesn't exist, it will return FALSE until you create the file. If you > create the file, it will return TRUE even if you then delete the > file. However unlink() clears the cache automatically. > > But, I think you are also missing the fact that the stat cache is > per-request. So your "every single pageload" aspect won't be helped by > adding negative caching to the stat cache. It is still going to stat on > every single page load. It is only multiple identical stats within the > same request that gets caught by the stat cache.
Thanks :) I forgot to mention that here (but in a chat :). Also it would help a little bit as some apps repeatedly check files or paths in the same request. However I am not sure it is worth the addition. Cheers, -- Pierre @pierrejoye | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php