1. 语言级别
- 多用内置函数、变量、常量,避免重复造轮子
- 少用PHP魔术方法
- 少用错误抑制符 @
- 利用unset及时释放不使用的大内存(unset会出现注销不掉的情况)
- 少用正则表达式(回溯开销大)
- 使用带单引号的字符串作为键值,避免将没有引号的键值当作常量(#define),产生查找开销
- 避免循环内做重复运算
- 减少计算密集型业务(使用c等语言)
2. 环境因素
- Linux 运行环境
- 磁盘
减少文件类操作 - 数据库
- 缓存
缓存重复计算信息
缓存opcache(zend_opcache) - 网络(优化网络请求)
设置超时时间:
链接超时200ms、读超时800ms、写超时500ms
串行请求并行化:
curl_mult_*()
swoole扩展
压缩PHP接口输出:
GZIP - 使用php扩展替代高频逻辑
性能开销: 【读写内存】 远小于 【数据库】 小于 【磁盘】 小于 【网络】,必要时可以将数据库、磁盘、缓存独立出去,成为单独服务器。
3. 相关工具
- ab工具
性能测试工具 - vld
opcode 查看工具 - xhprof
php性能分析工具