遇到性能问题
一.什么情况下会遇到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 cache :php扩展apc
Pecl.php.net php官方站点
扩展实现:通过php扩展代替原php代码中高频逻辑
Runtime优化:HHVM
php性能优化
最新推荐文章于 2024-09-03 15:54:49 发布