PHP性能优化--基础入门篇

详细的内容请到-->慕课网去搜索”PHP性能优化“的课程,或者直接戳这里-->PHP性能优化这里只是我边看视频边记下的笔记,甚至很多我自己都不理解。尴尬而且最好是使用他们的app,观看视频有一个加速功能,在线观看的话感觉老师快死了一样,把速度开到2.0倍,那气氛一下子就上来了。

先来贴一张图:


一个一个来讲:

*.php PHP写的脚本文件

Exprs 经过Scanner,PHP的引擎逐行扫描PHP脚本文件后生成的能被Scanner识别的文件

Opcodes   把Exprs经过解析(Parse)后生成的最后执行的机器语言

Output 把Opcodes经过执行(Execute)之后展现给用户的结果

这个是基础,接着再来讲第二点,一般服务器的部署形式:


这张图表示一般情况下服务器后台是分布式部署的,一个单独的 Linux 服务器专门用来运行PHP脚本文件,接着这个系统与其余部分的连接是靠实际的网络进行连接的,不论这个网络是光光公司内部的还是部署在外部的服务器。

基础知识点讲解完毕之后就是我写的笔记了:

1 多使用PHP原生函数
2 内置函数之间执行效率存在差异
3 减少使用魔法函数
4 禁用错误抑制符
5 合理使用内存,将不需要的变量注销掉
5 合理使用正则表达式
6 避免在循环内做运算
7 减少密集型运算,PHP适合连接webServer与后端服务,UI呈现
8 当需要使用字符串作为键值时,一定要加上引号
9 PHP的执行速度与Linux运行环境(即服务器的环境),文件存储,数据库,缓存,网络
(这一穿插一点,一般情况下是分布式布局,即Linux环境全部给PHP程序运行,数据库,文件存储,数据库,缓存等都是部署在别的服务器上的,之间使用网络连接,所以才会出现接下来的几个因素)
(接下来就是对上面几个周边操作的耗时的一般排序情况了。
读写内存 << 读写数据库 < 读写磁盘 < 读写网络数据)
10减少本件操作(也就是上面的读写磁盘数据)
11优化网络请求,比如使用第三方网络接口
(下面讲一下解决思路:
1 设置超时时间
	a 连接超时 200ms
	b 读超时   800ms
	c 写超时   500ms
2 将串行请求并行化			
	a 使用 curl_multi_*() 这个虽然能将所有的请求并行发送出去,但是也要等到收到所有返回之后才结束
	b 使用 swoole 扩展	大神写的框架)
(使用PHP做接口输出情况)
12压缩PHP接口输出,能减少传输数据但是会增加额外的CPU开销来解压文件。
13缓存重复计算内容
14重叠时间窗口思想	
15旁路方案			
16将PHP中的高频逻辑采用PHP扩展来实现
17Runtime优化,HHVM 还有 PHPNG  --你妹啊,知识点好多啊。。。。。。

测试工具:
XHPorf
ab     		测试多人同时登录的测试
vid    		查看 Opcode 的
还有两张图:

如果过程2不严重依赖过程1的话,即过程1还没产生结果就可以开始执行过程2的话,那就不需要等到过程1结束再去执行过程2,这样的思想可以看到采用多窗口思想的总耗时小于一般的按照顺序执行的耗时。

接下来是旁路方案:

同样,在过程3不严重依赖过程2的情况下,完全可以让2和3同时执行,这样可以减少时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值