- 论坛徽章:
- 0
|
环境: linux, apache2.2+php5.2,DSO方式安装,
调试过程如下
1: 简单php脚本,打开mysql并select一行记录打印到页面.用ab压力测试并发10共1000次,得出结果900 request per second
2: 随便加了一个include_once,被include的文件是一些xml解析函数,文件约5k字节大小,全部是function,没有不调用就主动运行的代码.
这个文件再include了另外两个文件,那两个文件都是一些常量和全局变量定义,数据量很少,也就是30来行.没有include其他
3:再进行ab测试,惨!!变成了190 request per second!
4:如果再加上其他的业务流(做的是一个webservice接口),include的文件增加到7个(也都不大),则即使不跑主要的业务逻辑,不访问数据库压力测试的结果只能是60 request per second
我反复删除和逐一增加include_once的项目,写了一个除了include_once之外什么都不做的脚本测试,基本上能确认是include_once文件导致性能的严重下降,大大感到意外!!!!
使用了一些方法比如先检查是否include再调用include_once,没有收效,因为每次执行至少要include_once一次文件,性能已经下降了,不是频繁include_once导致的.
意识到php可能每次接收请求都加载,解释,执行,清除,所以会慢成这样.
不使用include_once?仿佛不可想象.代码重用怎么办,总不能把所有代码都写在一起吧!!
想不通!!
请问有什么办法可以优化解决这个问题?除了安装APC之外.安装了Zend Optimaze,phpinfo打印出已经安装成功,但没有看到明显效果. |
|