Contents
  1. 1. 概述
  2. 2. 测试过程说明
    1. 2.1. 写用于生成 性能测试代码 的代码
    2. 2.2. 测试性能

概述

本文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倍。

Contents
  1. 1. 概述
  2. 2. 测试过程说明
    1. 2.1. 写用于生成 性能测试代码 的代码
    2. 2.2. 测试性能