网络上有很多关PHP性能优化的文章,提到了很多优化的细节,譬如:

  • 使用str_replace比使用正则表达式要快
  • 使用echo比使用print结构要快
  • 使用require比require_once更有效率

  这些东西的确是一个做PHP开发的人员所必须知道的事情,但是我觉得自己有时候太注重这些东西而往往裹足不前。存在即真理,有一些更方便的实现途径,干嘛不用呢?难道使用命令行就一定比使用GUI高深?需要改变下思路。

  恰好昨天,还是周六呢,要去看一下客户的OA,据原OA的开发公司的人说,现在运行速度特别慢,现在根本都打不开。过去一看,页面执行超时,30秒都打不开个页面,最后抛出的错误是数据库链接超时。但是其他页面又正常。翻看下数据库,单表有6K多条数据,然后查看那个出错的文件,我的天,居然有这么个变态的思路在这个文件里:先取出所有这些数据,然后循环,在循环中嵌套30次的查询,这样一个页面下来,总查询次数=6000×30=180000。能有这样的思路,系统不死在那才怪呢。

  其后做了一些测试,比如给Wordpress一次插入10K条记录,然后查看执行时间,居然还不错,1秒多。当然,Sablog放在旁边不说,毕竟它的设计思想就不一样,例如WP的同一日值从属多个分类它就做不到。不得不说的是,Wordpress的很多查询也写的很垃圾。

  跑题了。总结一点,如果想要你的程序跑的更快,运行的更好,把思路放在数据库结构优化和程序优化上面吧。不要花太多功夫在选择echo和print上面,这划不来。

  BTW:PHP真不适合做OA,HTTP的无状态性决定了很多OA必备的功能不能实现,譬如即时通讯。