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