我知道有些人将设置存储在.ini文件中,并在PHP中使用parse_ini_file()
获取值。没有运行测试,我对性能感到好奇。
如果设置在ini文件中,您是否知道操作码缓存是否可以缓存任何此类内容?
答案 0 :(得分:24)
根据从网络档案中检索到的旧blog post。
从最快到最慢:
如果服务器上有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文件,你会快得多。 所有专家都可以认为这是真的。