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性能分析工具