php性能优化

 
一.压力测试工具
    Apache Benchmark(ab)是由Apache提供的压力测试软件.安装Apache服务器会自带该压测软件。
    使用方法
    ./ab  -n1000 -c100      http://www.baidu.com/
    -n请求数    -c并发数   url目标压测地址
    由于我服务器是nginx,所有还要单独安装下
    安装yum -y install httpd-tools
    下面是测试百度页面的并发请求结果

 

二.PHP语言级性能优化
    php的执行流程:
    php文件->扫描->zd引擎去理解->opcodes->执行->输出
    php代码需要编辑解析为底层语言,自己写的代码可能冗余较多,性能较低.
    可以使用time php  xx.php测试执行时间
    1.多比较内置函数的性能差异,比如isset,array_key_exists虽然实现的功能一样,但是isset性能比array_key_exists好。
    2.尽量不使用php提的错误抑制符@,@的实际逻辑是在代码开始,结束后,增加Opcode,忽略保存,这样会产生额外的性能开销,同时也不方便我们及时发现错误。
    3.尽量少用魔术函数,魔术函数虽然方便我们开发,但是性能不佳。
    4.合理使用内存:php有内存回收机制保底,但也要小心使用内存,利用unset及时释放不要的内存。
    5.尽量少使用正则表达式,正则表达式回溯开销较大,多使用php字符串处理函数。
    6.避免在循环内做运算,循环内的计算将会被重复计算
    代码案例:
    $str = "hello word";
    for($i=0;$i<strlen($str);$i++){}
    strlen重复计算,产生额外开销
    7.减少计算密集型业务,php底层需要编译为c,相比之下不适合用来做复杂计算。
    8.务必使用带引号字符串做键值,PHP会将没有引号的键值当做常量,产生查找常量的开销
    例如:$array[key];由于key没有加引号,php会先查找是否有key常量,没有查到在知道数组里面差,既存在安全隐患也增加性能开销。


三.PHP周边问题的性能优化
读写内存<读写数据库<读写磁盘<读写网络数据
    1.减少文件类操作。
    2.优化网络请求
    2-1.设置超时时间(建议)
    a)连接超时  200ms
    b)读超时    800ms
    c)写超时    500ms
    2-2.讲串行请求并行化
    a)使用curl_multi*(curl_mult 缺点虽然可以同时发起多个请求,但是依赖于最慢的那条请求,如果多个请求中其中一个请求比较耗时,会导致整个返回耗时。)
    b)使用swoole扩展
    3.使用memcache,redis等做数据缓存
    4.使用php扩展代替原PHP代码的高频逻辑
    5.php性能分析工具:xhprof(facebook开源性能分析工具)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值