php开发之程序性能篇.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一.影响PHP性能的主要因素 . 影响PHP性能的关键因素不是语言本身(是否是PHP/JAVA/C都不重要), 从PHP实现原理来看,PHP属于半编译型语言,并且在各个方面都进行了 大量的优化工作,本身不会存在明显的性能问题,但由于动态语言的特性, 决定了PHP需要运行在Zend Engine虚拟机上,并且在变量查找、函数调用、 作用域切换等各个方面需要一些额外开销; . PHP本身不会存在明显的资源消 耗,单机QPS能够轻松过W, PHP框架本 身也不会对业务系统的性能带来关键性的影响。从真实的应用场景来看,基 于C语言实现的模块不见得比基于PHP实现的模块性能高效很多。因为在真 实的应用场景中,更多的性能开销在于网络数据交互和字符串处理,语言方 面微小的性能差异不会成为瓶颈! 一.影响PHP性能的主要因素 1.网络带宽 带宽是影响WEB站点访问速度的首要因素,以10M带宽为例: 10M = 10Mbps,计算带宽理论最快下载速度:10÷8=1.25MB/s,这只是 理论速度,实际上因为各种因素还要减去17%(经验值)的损耗, 假如 PHP页面的大小为30k,那么每秒仅仅支持30左右的并发就将使你的服务器 请求达到饱和状态; 2. 内存和CPU 对于由 PHP生成的编译型动态页面,内存和CPU速度自然将成为限制因素 之一; * 由于网络和计算机硬件的发展,网络带宽和硬件一般不会成为影响web性能 的主要因素,除非web程序非法,造成如内存溢出、程序遭漏洞攻击等问题。 一.影响PHP性能的主要因素 3.服务器环境配置各种因素 服务器环境主要包括操作系统及PHP的环境的相关配置,这些都与PHP的  运行效率息息相关,特别是PHP运行支持的Nginx、Apache、Mysql及PHP  底层相关的插件扩展等,一个配置项就可以极大地影响PHP运行效率; 4.跨服务器请求服务 在分布式的开发环境中,为了提高抗并发和业务处理的吞吐率,往往都是  多台不同业务的服务器间共同协调工作,而且会存在跨服务器请求服务,  如果生产服务器出错或消费服务器请求有误,都有可能导致消费服务器崩  溃,出现假死或请求超时现象; 一.影响PHP性能的主要因素 5.数据库因素 6.PHP自身因素 二. PHP7的性能提升 PHP7要打破一切,它使用新版的ZendEngine引擎,带来了许多新的特性: PHP7比PHP5.6性能提升了两倍、全面一致的64位支持、以前的许多致命错误现在改成抛出异常、移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展、新增了空接合操作符、新增加了结合比较运算符、新增加了函数的返回类型声明、新增加了标量类型声明、新增加匿名类等; 三.日常开发中提升PHP性能技巧 1.尽量静态化:如果一个方法能够静态化,就声明它为静态,速度可提升3倍, 在面对十万级以上次执行时效果明显; * 静态方法和非静态方法的效率主要区别在内存: 静态方法在程序加载时生成内存,非静态方法在程序运行中生成内 存,所以静态方法可以直接调用,非静态方法必须通过实例调用, 静态速度很快,但会占用比较多内存; * 静态内存是连续的,非静态内存是离散的,所以速度会比较快; 2.销毁变量去释放内存,特别是大的数组:对象和数组在PHP中特别占内存, 这个是由于PHP底层的zend引擎引起的,一般来说,PHP数组的内存利用 率只有1/10,也就是说,一个在C语言里面100M内存的数组,在PHP里面 就要1G; 三.日常开发中提升PHP性能技巧 3.尽量使用require/include来替代require_once/include_once,这是因为 require_once/include_once需要判断该文件是否被引用过比较耗资源,所 以能不用尽量不用;要在require/include中使用绝对路径,如果使用相对路 径,PHP会在include_path里面遍历查找文件,用绝对路径就会避免此类问 题; 4.尽量使用PHP内部字符串操作函数来代替正则表达式函数,因为正则函数 最耗性能; 5.最好不要用@,用@掩盖错误会降低脚本运行速度,大概会降低3倍左右, 特别是在循环中效率更低,原因是用@实际上后台会有很多操作; 6.$row[id]比$row[id]速度快7倍,建议养成数组键加引号的习惯; 三.日常开发中提升PHP性能技巧 7.建立一个全局变量要比局部变量慢2倍;建立一个对象属性(类里面的变量) 比局部变量要慢3倍;建立一个未声明的局

文档评论(0)

178****4446 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档