我有一个项目,我有一个大型阵列,其中的位置有特定的时区。
我不希望使用数据库,因为这将意味着太多的数据库命中,并编写另一种缓存机制来防止数据库命中。
所以我把它做成了一个带有数组的php文件。目前它的磁盘容量为2.5mb。 我可以缩减阵列以保存一些目前不需要但将来可能需要的信息(地理位置、城市名称、海拔等)
由于我启用了opcache,我希望opcache能够缓存这个非常大的文件,保存光盘命中率,保持数据随时可用。
有人能确认opcache也会缓存这个2.5mb的大文件吗?或者给我一个测试/验证该文件是否缓存的方法?
是的,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>