Skip to content

PHP性能优化

减少PHP魔法函数的使用

PHP本身提供的魔术方法性能不佳,尽可能的避免使用魔术方法

禁止错误抑制符

错误抑制符@目的是调整代码段的错误级别,在代码开始和结束增加opcode调整错误级别,可以使用vld扩展查看执行过程中的opcode

合理的使用内存和正则表达式

利用unset及时释放掉不使用的内存,利用字符串函数实现相同逻辑,避免使用正则表达式,因为正则表达式的回溯开销较大

尽量避免在循环内做运算

循环内的计算式或函数会被重新计算

减少计算密集型业务

PHP不适合密集型运算场景(大批量日志处理、大批量数据分析),PHP适合衔接Webserver和后端服务,UI呈现

务必使用带引号字符串做键值

PHP会将没有引号的键值当做常量,会产生查找常量的开销,严格使用引号作为键值

减少文件类的操作

减少PHP发起网络请求

借助xhprof工具分析PHP性能

在程序入口和结尾增加工具启停方法,在程序执行页面末会产生一个报告ID,报告内容会展现本次执行中执行了哪些方法、方法被调用的次数、方法包括在incloud之后总的执行微秒、当前函数执行了多少微秒。

PHP性能瓶颈究极办法

  • Opcode cache: PHP 扩展APC,缓存Opcode 扩展实现:通过PHP扩展代替原PHP代码中高频业务逻辑
  • Runtime优化: HHVM