胡水桥

126 分类: PHP

PHP之性能优化

PHP性能优化首先分为三个方向

PHP语言级别的性能优化->PHP周边问题的性能优化->PHP自身优化

一.PHP语言级别的性能优化

1.多使用PHP 的内置函数

2.少使用错误抑制符@

会产生额外的opcode开销 (opcode:当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode) )
错误抑制符的原理 是在@抑制符之前增加error reporting设置忽略 在之后设置回复

3.正确的使用正则表达式

正则表达式的回溯开销 如果不是高手 那么就老老实实使用字符串函数吧。

4.利用unset及时释放不用的内存

5.避免在循环内做运算

6.减少计算密集型业务

比如大批量的数据分析场景,毕竟php的运算 处理流程 需要转换成C语言
php更适合做衔接Webserver与后端服务(作为一个纽带使用),UI呈现

7.务必使用带引号字符串做键值(会浪费去常亮查找的操作)

二.PHP周边问题

周边有包括

硬件:linux 运行环境 硬盘(文件存储) 网络 内存
软件:数据库, 缓存(memeche,redis)–属于内存范畴
他们的性能都会影响项目性能

优化:

1.减少文件类操作

常见php场景的开销次序:
读写内存 << 读写数据库 < 读写磁盘 < 读写网络数据

2.优化网络请求

1) 设置超时时间:a>连接超时:200ms,b>读超时:800ms,c>写超时:500ms。
2.)串行请求并行化,curl_multi_*(), swoole扩展。

3.压缩PHP接口输出

使用Gzip压缩
利:有利于client端更快接收数据;
弊:额外的cpu开销
Gzip 压缩接口输出. 当数据>100k,效果会好。
Swoole 扩展,实现并行。

4.合理利用缓存

当多次请求 内容不变的时候 使用缓存(通常使用在模板缓解里)

5.时间窗口复用思想 同思想 旁路方案

串行改成并行(任务与任务之间不强制依赖,后一个任务不强依赖前一个任务时才可以)

三.PHP性能优化工具

XHPorf : facebook的PHP性能分析工具 可以定位项目中耗时较高的函数
apache自带的ab做压力测试
vld 做opcode代码分析

四.性能瓶颈

Opcode cache:对Opcode做缓存 ->PHP扩展APC
扩展实现:通过PHP扩展代替代码中的高频率逻辑
Runtime优化:HHVM

#学习笔记, PHP, 性能优化

作者: 胡水桥先生

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

仅有一条评论

  1. wys wys

    网站简练、响应快、学习性强。

评论

创客云