非常大的2.5mb php 文件会用opcache缓存吗?
very large 2.5mb php file will opcache cache it?
我有一个项目,其中有一个大型数组,其中的位置具有特定时区。
我不希望使用数据库,因为这意味着太多的数据库命中和编写另一个缓存机制来防止数据库命中。
所以我把它变成了一个带有数组的 php 文件。目前它在光盘上是 2.5mb。
我可以 trim 向下排列以保存一些我现在不需要但将来可能需要的信息(地理位置、城市名称、海拔高度等)
因为我启用了 opcache,所以我希望 opcache 能够缓存这个非常大的文件,保存磁盘命中率,使数据随时可用。
有人可以确认 opcache 也会缓存这个 2.5mb 的大文件吗?或者给我一个 test/verify 这个文件被缓存的方法?
是的,opcache 会缓存它。
通过查看 tool commented by 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>
我有一个项目,其中有一个大型数组,其中的位置具有特定时区。
我不希望使用数据库,因为这意味着太多的数据库命中和编写另一个缓存机制来防止数据库命中。
所以我把它变成了一个带有数组的 php 文件。目前它在光盘上是 2.5mb。
我可以 trim 向下排列以保存一些我现在不需要但将来可能需要的信息(地理位置、城市名称、海拔高度等)
因为我启用了 opcache,所以我希望 opcache 能够缓存这个非常大的文件,保存磁盘命中率,使数据随时可用。
有人可以确认 opcache 也会缓存这个 2.5mb 的大文件吗?或者给我一个 test/verify 这个文件被缓存的方法?
是的,opcache 会缓存它。
通过查看 tool commented by 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>