对于那些因为想知道使用必须解析的 INI 文件和简单包含的 PHP 文件(并且可以由 PHP 缓存)之间是否存在任何性能差异的人来说:是的,存在差异,但是它们太小了,这并不重要。
我的基准测试场景是一个config.ini
包含 20 个键/值对的config.php
文件和一个包含与定义相同的 20 个键/值对的文件。Ubuntu Linux 13.04 上的 PHP 版本为 5.4.9。
key1 = value1
...
key20 = value20
对比
<?php
define("key1", "value1");
...
define("key2", "value20");
两个测试脚本,包括配置:
<?php
$CONF = parse_ini_file("config.ini");
对比
<?php
require_once "config.php";
我用ab -c 25 -n 10000
.
没有 PHP 缓存的结果:
ini: Requests per second: 2660.89 [#/sec] (mean)
php: Requests per second: 2642.28 [#/sec] (mean)
APC PHP 缓存的结果:
ini: Requests per second: 3294.47 [#/sec] (mean)
php: Requests per second: 3307.89 [#/sec] (mean)
我多次运行测试,自然每次数字都会不同,但共识是:config.ini
不使用 PHP 缓存时config.php
快一点,使用 PHP 缓存时快一点。但是差异是如此之小,以至于决定不应该基于性能。