我一直无法弄清楚真实路径缓存实际上在做什么。
以下是我的一些问题:
究竟什么时候缓存了路径,在什么条件下它可能不会被缓存?
它是如何缓存的?在内存中,在文件系统上,还有别的吗?如果在文件系统上,文件在哪里?
每个请求都有缓存吗?即是多个缓存,还是只有一个规范的真实路径缓存?
我注意到,如果您转储缓存
var_dump(realpath_cache_get())
并保持,刷新页面,Ctrl+ F5,缓存的转储有时会有不同的输出???这里发生了什么?如何以及何时清除/清理缓存?后台进程,某种垃圾收集器。例如,如果它是一个垃圾收集器:它什么时候运行,它在什么条件下运行?是每个请求,例如每个请求随机吗?我不知道,我只是在这里吐口水。
注意:您似乎可以通过调用手动清除缓存
clearstatcache(true)
。
realpath_* 函数
配置选项
realpath_cache_size
"16K"
PHP_INI_SYSTEM
自 PHP 5.1.0 起可用。
realpath_cache_ttl
"120"
PHP_INI_SYSTEM
自 PHP 5.1.0 起可用。
(来自手册)
realpath_cache_size
integer
确定 PHP 使用的真实路径缓存的大小。在 PHP 打开许多文件的系统上应该增加这个值,以反映执行的文件操作的数量。
realpath_cache_ttl
integer
缓存给定文件或目录的真实路径信息的持续时间(以秒为单位)。对于很少更改文件的系统,请考虑增加该值。