PHP 性能优化(一)

PHP DEFINE(原作者:CS,在此感谢CS同学的帮助)

DEFINE是大家常用的定义常量的方法,但是DEFINE是存在一定的性能问题的。虽然一般的项目中可能会觉得DEFINE也不会很多,影响不是很大。

但是,实际上,由于require的使用和嵌套等,会在不知不觉中引用到很多的DEFINE。 例如,公司某个最近发布的项目中,一个典型的页面会引用到接近400个DEFINE,使用APD进行profiling后会发现DEFINE消耗的CPU非常靠前。

我们进行了一些对比测试:准备了4个php文件

d1.php

d2.php

d3.php

s1.php

每个文件都是重复1000项,以使对比效果明显。

主程序分别requrie这四个文件,对比进行压力测试。对比测试的结果如下:

d1.php – QPS 1050 左右
d2.php – QPS 1300 左右
d3.php – QPS 2500 左右
s1.php – QPS 3500 左右

结论:

很明显,DEFINE的性能是最差的,而且对比来看,是非常的差。 因此,建议在需要定义常量的地方,可以建立一个专门的常量类。

测试环境:

apache 2.0.59 php 5.2.1
HP DL360 XEON 3.0G*2 2G

Leave a Reply

Your email address will not be published.

*