使用ab进行压力测试

  ab -n行数 -c并发数 url

  重点关注下面两点:

  1、Request per secend : 每秒可接收的请求数

  2、Time per request : 每次请求所耗费的时间

优化1、多使用PHP自身的功能(如PHP定义的函数、常量),尽量少自己造轮子,自己写的代码冗余较多,可读性不高,且性能低下

    PHP每次接受请求后,都会进行编译成底层语言,C->汇编->机器语言,同时接受大量请求,每个请求都会执行一次编译

  示例代码如下:

bad.php                              

             

goods.php

          

可以实现同一功能,使用php自带的函数性能提高了很多倍;

PHP执行流程(参考 http://www.jb51.net/article/74907.htm  ||  http://www.cnblogs.com/hongfei/archive/2012/06/12/2547119.html  ||  http://www.2cto.com/kf/201404/290863.html)

优化二:

  PHP内置函数的性能差异,PHP内置函数实现同一功能,已然存在性能差异,最好的办法是比较它们的时间复杂度

  比如isset的性能优于array_key_exists

优化三:

  尽可能少的使用魔法函数

  PHP模仿函数性能不佳,尽可能规避

优化四:

  尽量不使用错误运算抑制符@

  @的实际逻辑是在@作用代码开始前,增加Opcode,也就是error_report等级设为忽略报错,在代码结束后,将报错等级恢复;

  开启vld扩展可以dumps all the opcodes,用来查看opcodes

优化五:

  合理使用内存,虽然PHP有内存回收机制,但也要小心使用,利用unset函数及时释放不适用的内存

优化六:

  尽量少的使用正则表达式,正则表达式的回溯开销较大,建议利用字符串处理函数,实现相同的逻辑

优化七:避免在循环内做运算,代码如下:

      

优化八:

  减少计算密集型业务,PHP不适合做大数据量的运算,适合衔接Webserver与后端服务,如db、cache等,适合UI呈现;

  

最新文章

  1. javaScript中值类型通过typeof直接进行检测
  2. BASIS--笨办法解决ALV_GRID的列剪切丢失纪录的错误
  3. I got a plan in 2014
  4. 缓存算法(页面置换算法)-FIFO、LFU、LRU
  5. Equipment Box[HDU1110]
  6. u盘在电脑读不出来,但别的可以读,别的u盘在我电脑又可以识别怎么回事?
  7. linux eval命令
  8. 利用if else 求房贷
  9. handler.post(r)同一个线程的疑惑
  10. PS调出清新风格社区街拍照片
  11. pyautogui 文档(五):截图及定位功能
  12. Java中的==与equals
  13. Nginx使用教程(三):Nginx配置性能优化之I/O和TCP配置
  14. 纪念一下我对Kalman的无限崇拜之情
  15. hdoj:2069
  16. window中普通用户无法登录远程桌面
  17. 复习-css边框和背景属性
  18. Inno Setup 系列之先卸载之后再安装
  19. Android 控件: Webview 的一些知识点
  20. 程序猿职业生涯中的 Norris 常数

热门文章

  1. asp.net页面之间的跳转
  2. Timus 1796. Amusement Park 聪明题
  3. UVALive 4043 Ants
  4. Linux是如何启动的
  5. OpenWrt sscanf问题之于MT7620N与AR9341
  6. angularJS自定义过滤器、服务和指令
  7. onblur判断数字
  8. arc engine - ILayer.
  9. ios面试汇总
  10. C++中的cout输出机制