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