PHP parse_ini_file()性能如何?

时间:2010-01-22 20:48:41

标签: php ini

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

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

5 个答案:

答案 0 :(得分:24)

根据从网络档案中检索到的旧blog post

从最快到最慢:

  1. 序列化数组
  2. 普通的PHP代码
  3. INI档案
  4. XML文件
  5. YAML文件
  6. 编辑(08/02/2012)

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

答案 1 :(得分:13)

对于问题的其他部分:如果操作码缓存缓存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文件更快。

答案 2 :(得分:7)

我一直怀疑parse_ini_file非常慢,并且在PHP文件中将变量存储在数组中的速度更快。但是有this 2004 article说不然:

  

最后,我们测试将配置参数存储在INI文件或PHP文件中作为关联数组。我们发现存储在INI文件中并使用parse_ini_file()比解析PHP文件更快。

我不会完全相信这一点,直到我自己测试一段时间才开始。但是这篇文章(以及杂志)看起来很可靠,值得认真对待。

答案 3 :(得分:0)

parse_ini_file内置函数在C中实现。这使得它非常快。

答案 4 :(得分:-4)

如果你不缓存ini文件,你会快得多。 所有专家都可以认为这是真的。