您的位置:首页 > 编程语言 > PHP开发

php性能优化

2015-10-14 20:14 519 查看
遇到性能问题
一.什么情况下会遇到php性能问题?
1.  php语法使用不恰当
2.  使用php语言做了其不擅长的事
3.使用php语言连接的服务不给力
4.php自身的短板
5.不知道问题

解决性能问题
性能优化项目,不要局限于优化php
一般php性能问题不到项目问题的一般
一.  Php的性能问题的解决方向
Php语言级的性能优化  php周边问题的性能优化 php语言自身分析,优化
二.  压力测试工具简介
Apache Benchmark (ab)
简介:ab是由apache提供的压力测试软件,安装apache服务器是会自带该压力软件。
如何使用:
./ab   -n100  -c100      http://www.baidu.com -n请求数
-c并发数
url目标测压地址
三.  Php语言级性能优化
1).优化点:少写代码,多用php自身能力
性能问题:
自写代码冗余量较多,可读性不佳,并且性能低
为什么性能低?
Php代码需要编译解析为底层语言,这一过程每次请求都会吃力一遍,开销大
好的方法:
多使用php内置变量、常量、函数
2).优化点:php内置函数的性能优化
情况描述:
Php的内置函数之间存在快慢差异
好的建议:
多去了解php的内置函数的时间复杂度
3).优化点:尽可能少用魔法函数
time php good.php     查看user项
4).化点:产生额外开销的错误抑制符@(不使用)
5).优化点:合理使用内存
利用unset()及时释放不使用的内存(注意:unset注销不掉的情况)
6).优化点:尽量少的使用正则表达式,优化正则表达式
7).优化点:避免在循环内做运算
$strlen  = strlen($str);
For($i=0;$i <= $strlen;$i++){
}
8).优化点:减少密集型业务
Php语言特性决定了php不太适合做大数据量运算
Php适合衔接webserver与后端服务、UI呈现
也就说文本处理
9).优化点:务必使用带引号的字符串做键值
四.Php周边问题的性能优化
Php 周边都有什么?
Linux运行环境
硬盘->文件存储
数据库
软硬结合的缓存机制
当通过网络连接周边环境时(网络也是一点)
1).减少文件类的操作
常见的php场景的开销次序:
读写磁盘、读写数据库、读写内存、读写网络数据
读写内存 << 读写数据库  (内存要小于磁盘)< 读写磁盘
< 读写网路数据
2).优化网络请求
网络请求的坑:
1.对方接口的不确定因素
2.网络的稳定性
如何优化网络请求:
1、  设置超时时间
a)连接超时  200ms
b)读超时    800ms
c)写超时     500ms
2、将串请求并行化
a)使用curl_multi_*()
b)使用swoole扩展
3).压缩php接口输出
如何压缩
使用Gzip即可
压缩输出的利与弊?
利:利于我们的数据输出  client断能更快获得数据
弊:额外的cpu开销
4).缓存重复计算内容
什么况下输出内容的缓存?
请求多次,内容不变的情况下
多用模板请求模块  smarty开启caching
5).旁路方案   后一个任务不强依赖前一个任务
五.php性能瓶颈解决办法
Opcode
a92c
cache :php扩展apc
Pecl.php.net   php官方站点
扩展实现:通过php扩展代替原php代码中高频逻辑
Runtime优化:HHVM
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: