概述
本文PHP里实测了 define 与 const 方式定义常量的性能,得出 const 定义方式的效率大概为 define 方式的2倍。
测试过程说明
写用于生成 性能测试代码 的代码
测试中,define、const各调用 10万 次,故需要用程序生成 性能测试程序,生成性能测试程序的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <?php $code = <<<'EOCODE' <?php set_time_limit(120); $start = microtime(true);
EOCODE; $i = 0; while ($i < 100000) { $i++; $code .= "define('DEF" . $i . "', " . $i . ");\n"; } $code .= <<<'EOCODE' $end = microtime(true); echo ($end - $start) . "s<br>\n";
$start = microtime(true); EOCODE; $i = 0; while ($i < 100000) { $i++; $code .= "const CON" . $i . " = " . $i . ";\n"; } $code .= <<<'EOCODE' $end = microtime(true); echo ($end - $start) . "s<br>\n";
EOCODE; file_put_contents(__DIR__ . '/const_define.php', $code); ?>
|
测试性能
运行上一步生成的 const_define.php 程序,结果如下:
第一次结果:
1 2
| 0.04206109046936s 0.019221067428589s
|
第二次结果:
1 2
| 0.042579889297485s 0.020570993423462s
|
第三次结果:
1 2
| 0.043606042861938s 0.020286083221436s
|
如上, const 的性能大概为 define 性能的2倍。