php性能优化总结

php语言优化从难到易分为:语言级性能优化->周边问题性能优化->php语言问题优化

语言级别的性能优化:

  • 在写代码的时候多使用php提供的内置函数,同时,在内置函数中也有时间复杂度,如isset,key_exists作用基本一致,但是在内部的时间复杂度上后者要大于前者,所以在使用时应优先考虑前者
  • 不使用@错误忽略符号,php的底层是基于c开发,php代码在引擎转化为opcode代码的时候,使用@符号在在语言级别中的意思就是将错误等级降到最低,大量使用@增加opcode量,建议使用try.....catch
  • 避免在循环中计算
    for ( $i=0;$i<count($array);$i++ ) {
        ......
    }
    

    在上述代码中,每次循环都要计算count($array),如果提前计算好,则也是一种优化

  • 数组中key的使用要带引号,不然php会将key当成常量去回溯
  • php擅长做的是衔接Webserver,UI呈现,要减少密集型业务的处理

周边问题优化:

  • 周边环境包括硬盘(读写文件直接和硬盘打交道)、数据库、内存、网络
  • 文件存储要减少文件操作,同时系统遇到瓶颈要分析好是脚本问题还是外部耗时问题
  • 文件在不同介质中操作速度:读写内存<<读写数据库<读写硬盘<读写网络数据,后三者都是与硬盘相关,第一种是和内存打交道

优化网络请求:

  • 链接超时建议200ms
  • 读超时建议800ms
  • 写超时建议500ms

将串行问题并行化:

  • 使用curl_muti_*()
  • 使用swoole扩展

压缩php接口输出:

  • 使用Gzip
  • 利:利于程序的数据输出,client端能更快的获取
  • 弊:额外的cpu开销

php缓存复用:

  • 多次请求,内容不变情况下建议使用缓存,达到复用目的
  • 重叠时间窗口思想,(要求:后一个任务不依赖于前一个任务)

最后推荐测试php代码性能工具

  • ab--压力测试工具,使用方法网上好多
  • xhprof工具,测试代码质量神器,会将主路线中单元方法每个耗时,整体页面耗时、占用内存呈现出来,非常好用
posted @ 2017-02-24 11:41  青竹zzq  阅读(118)  评论(0)    收藏  举报