我知道有些人将设置存储在 .ini 文件中并使用parse_ini_file()
PHP 获取值。没有运行测试,我对性能很好奇。
如果设置在 ini 文件中,您是否知道操作码缓存是否可以缓存任何此类内容?
对于问题的另一部分:如果操作码缓存缓存 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 缓存。用一个简单的 microtime 基准测试,这也比直接读取 ini 文件更快。
我一直怀疑 parse_ini_file 非常慢,而在 PHP 文件中将变量存储在数组中会更快。但是这篇 2004 年的文章另有说明:
最后,我们测试将配置参数存储在 INI 文件或 PHP 文件中作为关联数组。我们发现存储在 INI 文件中并使用 parse_ini_file() 比解析 PHP 文件更快。
我不会完全相信这一点,直到我自己测试一下,当我有时间去做的时候。但是这篇文章(和杂志)看起来足够可靠,可以认真对待。
parse_ini_file
内置函数是用 C 实现的。这使得它非常快。
如果你不缓存 ini 文件,你会快得多。所有专家都可以说这是真的。