一、PHP语言级性能优化少写代码,多用PHP自身的能力
自写代码冗余较多,可读性不佳,并且性能低。多使用PHP内置函数、变量、常量PHP内置函数的性能优劣
PHP内置函数之间依然存在快慢差异,多了解PHP内置函数的时间复杂度。如 isset() 与 array_key_exists()差异尽可能少用魔法函数
PHP魔法函数,性能不佳产生额外开销的错误抑制符@
在代码开始前、结束后,增加opcode,忽略报错。建议尽量不要使用@错误抑制符合理使用内存
PHP有内存回收机制保底,但也要小心使用内存。利用unset()及时释放不使用的内存。尽量少用正则表达式
利用字符串处理函数,实现相同逻辑避免在循环内做运算
减少计算密集型运算的场景
PHP不适合做密集型运算的场景,适合衔接webserver与后端服务,UI呈现。务必使用引号字符串做键值
PHP会将没有引号的键值当作常量,产生去查找常量的开销。
二、PHP周边问题的性能优化
主要从Linux运行环境、文件存储、数据库、缓存减少文件类的操作
读写内存 << 读写数据库 < 读写磁盘 < 读写网络数据优化网络请求
①对方接口的不确定因素 ②网络的稳定性
如何优化网络请求?设置超时时间(连接超时 200ms 读超时 800ms 写超时 500ms)
将串行请求并行化(a.使用curl_multi_*() b. 使用swoole扩展)压缩php接口输出 (gzip压缩)
PHP缓存复用
smarty 调优和重叠时间窗口思想
PHP旁边处理方案
三、PHP性能问题具体分析
工具:XHPorf
ab – 压力测试
vld – opcode代码分析