我使用filemtime
在HTML指纹外部资源,如:PHP clearstatcache()函数的性能和参数解释
<link rel="stylesheet" href="screen-<?=md5(filemtime('screen.css'));?>.css">
我注意到了有效的更新和filemtime
返回的时间戳之间的显著延迟,所以我顶部添加了clearstatcache()
,这似乎解决了问题。但根据php manual:
,你只需要调用clearstatcache()函数,如果你是在相同的文件名 操作执行多个,并要求有关 特定文件中的信息不会被缓存。
所以我想知道如果我正确使用它。
此外,我担心在每次调用时完全清除缓存的性能。任何人都可以告诉我它是否会导致服务器显着下降?
clearstatcache
还接受另外两个参数,但我不能确定它们的意义:
clear_realpath_cache是否清除真实路径缓冲区或没有。
名清除真实路径和只有特定文件名 的统计缓存;仅在clear_realpath_cache为TRUE时使用。
我不明白“realpath cache”的含义,我找不到任何关于它的信息。这有什么意义调用clearstatcache
这样:
clearstatcache(true,'/path/to/screen.css');
的意图,明确只有涉及到具体的文件信息(因此减少的clearstatcache
“影响”)?
是否有你使用'md5(filemtime('screen.css'))'而不是'filemtime('screen.css')的原因' - 一个32位数的128位散列仍然只和底层的32位数字一样好。 – jedwards
@jedwards只是为了有数字和字母的冷静;-)但你是对的,性能明智的 – Giona
你总是可以做一些像'dechex(filemtime('screen.css'))'甚至'str_pad(dechex (filemtime('screen.css')),8,'0',STR_PAD_LEFT)' - 只是一个想法 – jedwards