非常大的2.5mb php文件会opcache缓存吗?

时间:2018-01-09 12:50:34

标签: php php-5.6 opcache

我有一个项目,其中我有一个大阵列,其中包含具有特定时区的位置。

我不希望使用数据库,因为这意味着太多的数据库命中并编写了另一个缓存机制以防止数据库命中。

所以我把它变成了带有数组的php文件。目前它在碟片上的容量为2.5mb 我可以减少阵列以节省我此时不需要的一些信息,但可能在未来(地理位置,城市名称,海拔高度等)。

由于我启用了opcache,我希望opcache会缓存这个非常大的文件,保存光盘命中,保持数据随时可用。

有人可以确认opcache还会缓存这个大的2.5mb文件吗?或者给我一个方法来测试/验证这个文件是否被缓存?

1 个答案:

答案 0 :(得分:0)

是的,opcache会缓存它。

通过查看由tool评论的MarkBaker中的代码,我能够获得这个简单的验证脚本,以查看该文件是否已缓存。

你需要的是文件的绝对路径,然后你可以轻松检查它是否被缓存。

<pre><?php 
$status = opcache_get_status();
$scripts = $status['scripts'];
$file = 'F:\cmslib-dev\include\lib\locations\Locations.php';

if(array_key_exists($file, $scripts)) {
    var_dump($scripts[$file]);
}
else {
    echo "$file is not cached";
}
?>
</pre>