php clearstatcache()性能和参数说明

Gio*_*ona 8 php stat filemtime

filemtime用于在html中对指纹外部资源进行指纹识别,例如:

<link rel="stylesheet" href="screen-<?=md5(filemtime('screen.css'));?>.css">
Run Code Online (Sandbox Code Playgroud)

我注意到有效更新和返回的时间戳之间存在显着延迟filemtime,所以我clearstatcache()在顶部添加了,这似乎解决了这个问题.但根据php手册:

如果要对同一文件名执行多个操作并且要求不缓存有关该特定文件的信息,则只需调用clearstatcache().

所以我想知道我是否正确使用它.

此外,我担心在每次通话时完全清除缓存的性能.谁能告诉我它是否会导致服务器显着减速?


clearstatcache 还接受两个额外的参数,但我不确定它们的含义:

clear_realpath_cache是否清除realpath缓存.

filename仅清除特定文件的realpath和stat缓存; 仅在clear_realpath_cache为TRUE时使用.

我没有得到"realpath缓存"的意思,我找不到任何有关它的信息.这样称呼是否有意义clearstatcache:

clearstatcache(true,'/path/to/screen.css');
Run Code Online (Sandbox Code Playgroud)

旨在仅清除与该特定文件相关的信息(从而减少"影响" clearstatcache)?

jed*_*rds 2

看来您正确使用了该功能。除非您使用您希望缓存的其他统计函数(如文档中列出的),否则我不知道它会导致显着减速的原因。

当您include('somefile'),somefile可能位于多个不同位置时,由您的include_path、 cwd 等决定。真实路径缓存只是消除了重复搜索这些位置的需要。

对于您的使用,您的代码看起来不错。

  • 感谢您的回复。嗯,那么我应该使用“通用”“clearstatcache()”还是“clearstatcache(true,anyfileneeded)”? (2认同)