PHP parse_ini_file() 性能?

2022-08-30 20:50:59

我知道有些人将设置存储在.ini文件中,并在PHP中获取值。在不运行测试的情况下,我对性能感到好奇。parse_ini_file()

您是否知道如果设置在ini文件中,则操作码缓存是否可以缓存任何此类内容?


答案 1

根据从网络档案中检索到的这篇旧博客文章

从最快到最慢:

  1. 序列化数组
  2. 纯 PHP 代码
  3. INI 文件
  4. XML 文件
  5. 亚姆尔文件

编辑 (08/02/2012)

如果APC或其他加速器在服务器上可用,则纯PHP文件将是最快的,因为它们只会被解析一次并保存在内存中以供进一步使用。


答案 2

对于问题的另一部分:如果操作码缓存缓存ini文件。在撰写本文时,在我的版本PHP 5.3.5中,APC缓存不会自动执行此操作,但是您可以通过添加如下所示的函数来确保APC缓存ini文件,并使用它来解析ini文件:

function parse_ini_file_ext ($file, $sections = null) {
    ob_start();
    include $file;
    $str = ob_get_contents();
    ob_end_clean();
    return parse_ini_string($str, $sections);
}

然后,ini 文件由 APC 缓存。使用简单的微时间基准测试进行测量,这也比直接读取ini文件更快。


推荐