我正在使用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/

10-10 11:01