代码之家  ›  专栏  ›  技术社区  ›  Tschallacka

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

  •  2
  • Tschallacka  · 技术社区  · 6 年前

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

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

    所以我把它做成了一个带有数组的php文件。目前它的磁盘容量为2.5mb。
    我可以缩减阵列以保存一些目前不需要但将来可能需要的信息(地理位置、城市名称、海拔等)

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

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Tschallacka    6 年前

    是的,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>