我正在使用filemtime
对html中的外部资源进行指纹识别,例如:
<link rel="stylesheet" href="screen-<?=md5(filemtime('screen.css'));?>.css">
我注意到在有效更新和
filemtime
返回的时间戳之间存在明显的延迟,因此我在顶部添加了clearstatcache()
,这似乎解决了此问题。但是根据php manual:所以我想知道我是否正确使用它。
另外,我担心在每次调用时完全清除缓存的性能。谁能告诉我它是否可以导致服务器的显着速度下降?
clearstatcache
还接受两个附加参数,但是我不确定它们的含义:我没有得到“realpath cache”的含义,也找不到任何有关它的信息。这样调用
clearstatcache
是否有意义:clearstatcache(true,'/path/to/screen.css');
旨在仅清除与该特定文件有关的信息(从而减少
clearstatcache
的“影响”)? 最佳答案
看来您正确使用了该功能。除非您要使用希望缓存的其他统计功能(如文档中列出的那样),否则我不知道会导致速度显着下降的原因。
当您使用include('somefile')
时,somefile
可以位于许多不同的位置,具体取决于include_path
,cwd等事物。realpath高速缓存仅消除了重复搜索这些位置的需要。
供您使用,您的代码看起来不错。
关于php clearstatcache()性能和参数说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13608671/