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-c
* 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面试题之优化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue中如何生成组件的文档说明ubuntu 下常用的命令(仅做记录)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

高级PHP开发:利用PHPEMS搭建在线考试平台

今天给大家分享一个小技巧,就是利用PHP ems搭建在线考试平台;希望能给你给予帮助; 在给大家分享之前,这里推荐下我自己建的PHP开发-VIP资料出售平台 :638965404,不管你是小白还是大牛,我都挺欢迎,不定期分享干货,包括2017最新的PHP企业案例学习资料和零基础入门教程,以及面试宝典,欢迎初学和进阶中的小伙伴,大家一起交流学习,共同进步。...

Composer依赖管理 – PHP的利器

别再到处搜PHP类扩展包了,对于现代语言而言,包管理器基本上是标配。Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。PHP 的则是 PEAR,不过 PEAR 坑不少: 依赖处理容易出问题 配置非常复杂 难用的命令行接口 好在我们有 Composer,PHP依赖管理的利器。它是开源的,使用起来也很简...

微信公众平台消息接口PHP版

使用前提条件:拥有一个公网上的HTTP服务器主机空间,具有创建目录、上传文件等权限。推荐新浪的SAE。http://sae.sina.com.cn/ 首先请注册微信公众平台的账号,注册地址:http://mp.weixin.qq.com/ 本教程主要讲解接口的开发流程。 官方的文档非常简洁:http://mp.weixin.qq.com/cgi-bin/i...

python版本更新升级后第三方库不见了的问题

1、像卸载一般电脑程序一样,把老的Python 3.6.2版本卸载,会自动删除之前配置的环境变量信息 2、官网下载最新的python版本,安装的时候记得勾选Add Python 3.9.5 to PATH就行,会自动添加环境变量 3、pycharm解释器也需要更新下设置,否则执行程序就会报下面的粉红色背景的错误: Error running 'login'...

Mac安装PHP运行环境

先安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" nginx的安装与配置 brew install nginx 修改配置文件 sudo vim /usr/local/etc/nginx/nginx.conf #修...

数据结构与算法之PHP用邻接表、邻接矩阵实现图的深度优先遍历(DFS)

一、基本思想 1)访问指定的起始顶点v; 2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问; 3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。   二、图的存储结构                       示例图            ...