文档章节

慕课网《PHP性能优化初探》学习笔记

雨醉风尘
 雨醉风尘
发布于 2016/12/06 19:55
字数 403
阅读 29
收藏 1

//以下内容为慕课网《PHP性能优化初探》笔记整理

1:什么情况下遇到性能问题

  • 语法使用不恰当
  • 用PHP做了不擅长的问题
  • 连接的服务不给力
  • PHP自身的短板

2:PHP的性能在项目所占比例约占35%

3:PHP性能问题的解决方向

  • PHP语言级性能优化
  • PHP周边问题的性能优化(MySQL,WebServer,Cache)
  • PHP语言自身的优化(底层C语言)

4:PHP代码执行流程

php文件->扫描->zd引擎去理解->opcodes->执行->输出

5:PHP语言级性能优化

  • 尽可能减少魔术方法的使用
  • 禁用错误抑制符号@
  • 合理使用内存和正则表达式(回溯开销大)
  • 避免在循环内做运算操作
  • 减少计算密集型业务
  • 使用引号字符串作为键值

6:PHP周边问题得性能优化

  • 操作系统
  • 文件存储/硬盘(减少文件类操作)

读写内存<读写数据库<读写磁盘<读写网络数据

  • 数据库
  • 内存/缓存
  • 网络

对方接口不稳定

网络本身不稳定

7:如何优化网络请求

  • 设置超时时间(连接超时/200ms,读超时/800ms,写超时/500ms)
  • 串行请求并行化

使用curl_multi_*

使用Swoole

-重叠时间窗口得思想

8:PHP性能分析工具

  • XHPROF
  • ab test
  • vld

9:PHP性能瓶颈解决方法

  • Opcode cache:apc yac
  • Runtime优化:HHVM

© 著作权归作者所有

共有 人打赏支持
雨醉风尘
粉丝 3
博文 106
码字总数 23692
作品 0
海淀
程序员
私信 提问
程序员最经常用的5大编程学习网站,你用过几个?

编程现在越来越受人们的欢迎。Python居然成了高考项目,纳入浙江省信息技术高考范畴。 有些新手程序员可能并不清楚在哪个网站学编程,下面我们不妨来看下程序员必须收藏的5大网站(适用于PHP...

W3Cschool
2017/12/13
0
0
投稿004期 | 我和慕课风花雪月的风流事

"在信息时代,客观障碍已不复存在,"他说:"所谓障碍都是主观上的。如果你想动手开发什么全新的技术,你不需要几百万美元的资金,你只需要在冰箱里放满比萨和可乐,再有一台便宜的计算机,和...

含笑666
2018/05/30
0
0
【免费精选第二季】从零基础到实战,免费精品课程推荐

如果你关注前端开发,本文收集了值得你关注的免费在线中文系列课程。纯干货,由业界前端专家精心设计。这些课程的内容浅显易懂,授课方式有视频,也有小任务实战推进的学习方式。边学边练,摆...

曾经灬静默者
2014/08/15
1K
3
《慕课革命--互联网如何变革教育》

前言 书籍来源于@Dean Huo赠送,我用笔记、思考作为回馈; 全书共五大篇,18章节,约15万字; 本书的笔记采用问答式进行,筛选和总结我的问题,并在书中寻找答案; 笔记全文约1w字,建议阅读...

你好我是森林
2018/05/27
0
0
如何使用node刷新慕课网手记文章阅读量

刷阅读量很简单 github原址 绝对不含恶意,只希望可以提出自己的建议。谢谢!!在简书和慕课网手记上都有这篇文章哦!! 使用nodejs刷了一下 慕课网手记 文章的阅读量,阅读量上去了,害怕被...

HerryLo
2018/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

FreeModbus是Modbus的一个被广泛移植的实现。其源码在github,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对一些功能比如异常诊断和读事件计数等功能码并没有...

Konstantine
今天
3
0
浅谈神经网络(神经网络篇)

背景 之前写过浅谈神经网络基础篇,简单介绍下机器学习这块内容,用于扫盲。本文正式将神经网络,这部分是深度学习的基础。了解完可以掌握强大的机器学习的方法,也可以更好的了解深度学习。...

Uknowzheng
今天
3
0
移动硬盘变为RAW格式后的修复

在Mac上使用自己的移动硬盘结果文件系统格式变为RAW; 在自己windows笔记本上使用chkdsk H: /F进行修复,修复日志如下: C:\Users\mengzhang6>chkdsk H: /F文件系统的类型是 NTFS。卷标是 do...

晨猫
今天
3
0
10 Git —— 标签管理

10 Git —— 标签管理 本节内容: 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git......

lwenhao
今天
3
0
小程序设置垂直居中,水平居中

如果子容器中的view需要居中的话,那需要在父容器中设置居中 水平居中: display: flex; flex-direction: column; align-items: center; 垂直居中 display: flex;align-items: cen...

淘幻幻
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部