性能优化之PHP优化

一.语言性能优化

1.使用Apache下的ab工具进行性能测试
测试:ab -n100 -c100 https://www.baidu.com/(请求100次,并发量是100)
关注两个量:
Requests per second(每秒请求数 )和Time per request(平均响应时间)

2.尽量使用php内置变量,常量,函数,原因:php代码需要经过zend引擎独行扫描成zend可识别语法,再被解析成opcode代码,然后才被执行。

3.内置函数也有优劣之分,要懂得使用性能高的函数,了解函数实现的时间复杂度,以isset和array_key_exists两个函数为例。

4.尽可能规避php的魔法函数。

5.禁止错误抑制符@的使用,原因是会在该语句前后插入一些代码。使用工具vld,查看php的opcode。

6.合理使用内存(建议用unset释放变量)


7.合理使用正则表达式(原因是需要回溯)


8.避免在循环里面计算,例子:for($i=0;$i<strlen($str);$i++){ //do something;}


9.减少计算密集型业务。原因:php的语言特点决定的,php是由c语言写的,处于上层,实现的话都要通过c来运行,只是一个纽带作用。php擅长的是衔接webserver与后端服务,UI展示。所以密集型业务最好是通过其它语言来实现,不然会成为性能瓶颈。


10.务必使用带引号字符串做键值。不然php会先去找常量值,如若找不到才会当成字符串来处理,这需要额外开销。

二.周边性能优化

主要影响性能主要有以下5点:

1.Linux环境;

2.文件存储(硬盘);

3.数据库;

4.内存缓存(memcache,redis)

5.网络

建议采用以下方式优化:

1.减少文件类操作,按开销大小排序是:读写内存<<读写数据库<读写磁盘<读写网络数据(socket),读写内存最快,数据库有其缓存系统,网络又有延迟。 

2.优化网络请求:
原因:1.对方接口的不确定性;2.网络的稳定性
优化方式:
2.1.设置超时时间(a连接超时;b读超时;c写超时);
2.2.将串行请求并行化;
a)使用curl_multi_*();
b)使用swoole扩展。

3.压缩PHP接口输出:
使用Gzip压缩
利:有利于client端更快接收数据;
弊:额外的cpu开销

4.缓存重复计算内容:多次请求,内容不变的情况下;

5.smarty调优和时间窗口重叠思想(后一个任务不强依赖前一个任务的情况下可使用),并行缩短运行时间。

6.使用xhprof工具分析性能;

三.php性能瓶颈解决方法

Opcode Cache:PHP扩展APC
扩展实现:通过PHP扩展代替原PHP代码中高频业务逻辑
Runtime优化:HHVM





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值