PHP面试题之优化
* PHP性能问题
* 1.PHP语法使用的不恰当
* 2.使用PHP语言做了它不擅长的事
* 3.使用PHP语言链接的服务不给力
* 4.PHP自身做不了的事情
*
* PHP的性能问题的解决方向
* 1.PHP语言级的性能优化(代码优化)
* 2.PHP周边问题的性能优化(linux,mysql,磁盘等)
* 3.PHP语言性能的优化(c层)
*
* 使用ab压力测试(-n请求数 -c并发数 url目标压测地址)
* ./ab -n1000 -c100 http://www.baidu.com
* Request per second每秒接受的请求数(越大越好)
* Time per request一个请求需要的时间(越小越好)
*
* time php test.php 测试代码执行时间
*
* vld- PHP Opcode查看扩展
* php -dvld.active=1 -dvld.execute=0 test.php
*
* PHP代码运行流程
* *.php(PHP文件)->Scanner(扫描代码,分析)->Exprs(保存成zend引擎可以识别的文件)->Parser(解析)->Opcodes(能被执行的文件)->Exec(执行)->Output(输出结果)
* 多使用PHP内置变量,常量,函数
* php内置函数也存在差异,多使用时间复杂度低的.例isset()和array_key_exists()存在差异
* 尽可能规避使用PHP魔法函数
* 禁用@错误抑制符,会产生额外的开销
* 合理使用内存,利用unset()及时释放不使用的内存
* 尽量少使用正则表达式
* 避免在循环内做运算for($i=0;strlen($str);$i++){}
* 减少计算密集型业务(php语言特性决定了PHP不适合做大数据量运算)
* 务必使用带引号字符串做键值(key)
* 减少文件类操作 内存<<数据库<磁盘<读写网络数据
* 优化网络:1.设置超时时间 连接超时200ms 读超时800ms 写超时500 2.将串行请求并行化:使用curl_multi_*() ,使用swoole扩展
* 压缩PHP接口输出:Gzip 好处:client更快获取数据 坏处:额外的cpu开销
* PHP缓存复用
* 时间窗口重叠方法
* PHP旁路方案
* xhprof (php -ri xhprof)
PHP面试题之优化的更多相关文章
- 大厂常问iOS面试题--性能优化篇
1.造成tableView卡顿的原因有哪些? 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候 ...
- 大厂常问iOS面试题--多线程篇
1.进程与线程 进程: 1.进程是一个具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元. 2.进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,我们可 ...
- web开发微信文章目录
Web开发微信文章目录 2015-12-13 Web开发 本文是Web开发微信的文章目录.通过目录查看文章编号,回复文章编号就能查看文章全文. 回复编号查看全文,搜索分类名可以获得该分类下的文章. ...
- 常见面试题之ListView的复用及如何优化
经常有人问我,作为刚毕业的要去面试,关于安卓开发的问题,技术面试官会经常问哪些问题呢?我想来想去不能一股脑的全写出来,我准备把这些问题单独拿出来写,并详细的分析一下,这样对于初学者是最有帮助的.这次的 ...
- 【5】-阿里面试题android网络图片加载优化
题目: 遇到网络不好,卡顿的时候如何对网络的加载图片进行优化? 思路: 从加载的图片的本身和手机的存储两方面考虑 解决办法: 1.找现有图片格式的替换者 在众多的图片格式中,选择了Google的Web ...
- 关于 iOS 性能优化方面的面试题,
这是我前面几天碰到的面试题: 如何对定位和分析项目中影响性能的地方?以及如何进行性能优化? 我的答案: 定位方法: instruments 在iOS上进行性能分析的时候,首先考虑借助instrum ...
- StringBuilder和StringBuffer解析(百度面试题优化须要用到的)
StringBuilder是java5及以后提供的API,它不是线程安全的,而StringBuffer是java1.4曾经的API,它是线程安全的,所以说StringBuilder的效率更高一些,今天 ...
- 某浪PHP面试题及答案优化
前几天一网友去国内某知名IT公司某浪面试PHP,在他谈心得的时候得一面试题,下面写问题答案及优化方案,希望大家多提提意见. “神马,杨辉三角?” 我估计太久不上学了,当年初中数学及大学C语言课上的杨辉 ...
- 面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化
总结的一些MySQL数据库面试题 2016年06月16日 11:41:18 阅读数:4950 一.sql语句应该考虑哪些安全性? (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语 ...
随机推荐
- [Effective Modern C++] Item 6. Use the explicitly typed initializer idiom when auto deduces undesired types - 当推断意外类型时使用显式的类型初始化语句
条款6 当推断意外类型时使用显式的类型初始化语句 基础知识 当使用std::vector<bool>的时候,类型推断会出现问题: std::vector<bool> featu ...
- Building Android Apps 30条建议
Building Android Apps — 30 things that experience made me learn the hard way There are two kinds of ...
- jQuery Validate 插件验证,,返回不同信息(json remote)自定义
问题 申请账号需要确认该账号是存在 jquery.validate.js中的remote Jquery Ajax获取后台返回的Json数据后,添加自定义校验 解题思路:输入的登陆信息远程验证是否该账号 ...
- php 记住密码自动登录
当我们登录网站管理后台的时候,会有提示说记住登录状态,记住我等这样的提示,这个选项有什么用呢?如果选中了记登录状态后,下次在浏览这个网站后 台时就不用在填写用户名和密码了,在去登录了.下面写了一小代码 ...
- mvc of js
http://alexatnet.com/articles/model-view-controller-mvc-javascript The article demonstrates how to a ...
- delphi 获取北京时间(使用XMLHTTP获取百度的时间,WebBrowser获取www.timedate.cn的时间)
方法一: uses ComObj, DateUtils; function GetInternetTime: string; var XmlHttp: OleVariant; datetxt: str ...
- poj 1157 LITTLE SHOP_简单dp
题意:给你n种花,m个盆,花盆是有顺序的,每种花只能插一个花盘i,下一种花的只能插i<j的花盘,现在给出价值,求最大价值 简单dp #include <iostream> #incl ...
- IOS设备设计完整指南(转载)
http://blog.sina.com.cn/s/blog_6cc9af670102vq12.html
- rpm包下载网站
摘自http://blog.sina.com.cn/s/blog_4942055d0100031a.html rpm包下载网站 http://www.rpmfind.net http://www.rp ...
- IE 下a标签在 position:absolute 后无法点击的问题
IE 下 a 标签在 position:absolute 后无法点击的问题 条件 : DOCTYPE 为 XHTML. IE 浏览器 现象 : 将 a 的 position 指定为 absolute, ...