php5.5.11中的opcache_is_script_cached函数

时间:2014-04-22 20:46:08

标签: php opcache

最近我问了一个问题“有没有办法找到脚本是否被opCache命中”并且无法找到答案。现在正在查看 Php5.5.11 changelog,我发现了新功能

  

OPCache:

     

添加了函数opcache_is_script_cached()。

已添加。基于名称它正在做我想要的,但问题是我找不到任何documentation on this function

有人能告诉我这个功能究竟是什么吗?请不要猜测。

3 个答案:

答案 0 :(得分:2)

您可以在zend_accellerator_module.c的底部找到该功能的源代码,它似乎可以满足您的需求。看起来它需要一个参数,这是您正在检查的脚本文件名。 filename_is_in_cache中的代码似乎处理了由不同字符串指定相同文件的情况('filename.php'vs'/var/www/filename.php'),但您可以深入挖掘或自行测试核实。

此外,这里有一个显示示例的test case,但它非常小。

答案 1 :(得分:2)

在阅读这篇文章(以及其他一些PHP手册)之后,我发现该功能还没有被记录下来。无论如何,我最近花了一点时间将这个函数添加到PHP文档中:

http://php.net/manual/en/function.opcache-is-script-cached.php

手册摘录:

  

opcache_is_script_cached - 判断脚本是否在OPCache中缓存

     

boolean opcache_is_script_cached ( string $file )

     

此函数检查是否已在OPCache中缓存PHP脚本。这可以用来更容易地检测到变暖"特定脚本的缓存。

     

如果TRUE缓存在OPCache中,则返回$file,否则返回FALSE

答案 2 :(得分:0)

实际上,记录的函数opcache_get_status可以满足您的需求。只需在其中传递true参数并检查返回数组中的scripts部分即可调用它。