PHP 应用性能优化方案

原创 2017年09月08日 10:55:07

        程序员都喜欢最新的PHP 7,因为它使PHP成为执行最快的脚本语言之一(参考PHP 7 vs HHVM 比较)。但是保持最佳性能不仅需要快速执行代码,更需要我们知道影响性能的问题点,以及这些问题的解决方案。本篇博文就是介绍保障PHP应用平稳高速运行的知识点,大量干货来袭,建议收藏。

1、PHP代码优化最佳实践

        编写好的PHP代码是创建快速稳定Web应用的关键一步。从一开始就遵循一些最佳实践技巧将节省后期填坑的时间。

1) 尽可能的使用PHP的内置方法

        只要可以尽可能的使用PHP的内置方法,而不是自己编写相同功能的方法。花点时间去熟悉和学习PHP的内置方法,不但可以帮助你更快的编写代码,而且可以使你编写的代码更高效的运行。

2) 使用Json替代xml

        json_encode()和json_decode() 等PHP的内置方法,运行速度都非常快,所有应该优先使用Json。如果你无法避免使用xml,那么请务必使用正则表达式而不是DOM操作来进行解析。

3) 使用缓存技术

        Memcache特别适用于减少数据库负载,而像APC或OPcache这样的字节码缓存引擎在脚本编译时可节省执行时间。

4) 减少不必要的计算

        当一个变量会被多次使用时,一开始就计算好,肯定要比每次使用时都计算一遍要更高效。

5) 使用isset()和empty()

        与count()、strlen()和sizeof()函数相比,isset()和empty()对于检测一个变量是否为空等场景更加简单和高效。

6) 减少不必要的类

        如果你不打算重复使用一个类或者方法,那么它就没什么存在的价值。而如果你必须要定义和使用一个类,则需要合理规划类中的方法,对于不是特别公用的方法,尽量将他们放到子类中去,因为调用子类中的方法,比调用父类方法速度更快。

7) 在生产环境关闭用作调试的相关代码及错误报告

       开发时打开错误报告,可以让你避免很多潜藏的Bug,而一些调试代码也有助于你定位Bug,但是当代码部署到生产环境后,这些错误报告和调试代码会拖慢你的程序速度,而且将一些错误报告直接显示给用户,也具有相当的安全风险。因此,在生产环境请关闭它们。

8) 关闭数据库连接

        当使用完毕后,注销变量和关闭数据库连接,可以释放珍贵的内存资源。

9) 使用聚合函数减少数据库查询

        查询数据库时,使用聚合函数,可以减少检索数据库的频率,并且使程序运行的更快。

10) 使用强大的字符串操作函数

         举个例子,str_replace()比preg_replace()要快,而strtr()函数则比str_replace()函数快四倍。

11) 尽量使用单引号

         如果可能,尽量使用单引号替代双引号。程序运行时,会检查双引号中的变量,这会拖慢程序的性能。

12) 尝试使用恒等运算符

         由于“===”仅检查闭合范围,因此比使用“==”进行比较速度更快。

2、PHP代码之外的性能瓶颈因素

         优化代码当然能够提高PHP的性能。但是,还有一些代码之外的因素也会成为PHP的性能瓶颈。这就是为什么程序员需要了解代码部署的整个服务器环境,这有助于他们在编写代码时有一定的心理准备,并能够在性能出现问题时,快速识别和定位性能瓶颈。以下是你遇到性能瓶颈时需要检查的点。

1) 网络带宽

       如果网络带宽不够,其传输的总数据量将会受到严重影响,使其成为最明显的性能瓶颈。

2) CPU

        如果只是传输一些纯静态的HTML,则不需要消耗很多CPU资源,但是PHP毕竟创建的是动态的应用程序,根据应用的需要,你可能至少需要一台具备多核处理器的服务器来提升PHP代码的运行效率。

3) 共享内存

        缺少共享内存可能会影响进程间通信,从而影响程序性能。

4) 文件系统

        随着时间推移,你的文件系统可能会出现大量磁盘碎片。如果内存足够,利用内存作为文件缓存可以加快磁盘的访问速度。

5) 进程管理

        检查服务器的进程,确保里面没有非必要的进程。移除哪些不需要的网络协议、病毒扫描软件、邮件服务以及硬件驱动。将PHP代码运行在多线程模式,也能提高程序的响应时间。

6) 相关的其它服务

       如果你的应用程序还依赖于一些外部服务,那这些外部服务的性能瓶颈也有可能拖慢你的应用。虽然这种情况下你能做的事情不多,但你仍然可以通过你这一边的操作来减轻外部服务性能瓶颈对你的影响,例如切换到备用服务上等。

本篇博文暂时总结这么多,欢迎大家相互交流学习。

版权声明:转载时请标注http://blog.csdn.net/zhihua_w

大集中系统的性能优化解决方案

  1.1 前言        地税征管信息系统性能优化方面,我们从技术和业务两个方面,进行前后台架构如何优化、多层架构各层如何优化、编码程序如何优化等,以及对业务的改进和系统功能优化。       ...
  • junjun_nj
  • junjun_nj
  • 2007年08月06日 13:45
  • 643

Android App 性能优化方案

1. 为什么需要性能优化? 上面说到,在时间窗口期内开发出产品是极端重要的,但是虽然基本功能我们实现了,但是开发出来的产品代码运行的效率怎么样呢?我们的App用户给用户的体验如何呢? 我们的App...
  • chenrushui
  • chenrushui
  • 2016年06月22日 09:16
  • 5705

浅谈Android性能优化方案

经过前一阶段的调查,大概对性能优化已经有了初步的解决方案:  先给大家介绍一下性能优化指标以及部分方案:        一、性能优化六项指标:               性能、内存、稳定性、流...
  • walid1992
  • walid1992
  • 2016年01月06日 19:06
  • 3925

超直白win7性能优化方案

超直白win7性能优化方案
  • qq_37107280
  • qq_37107280
  • 2017年08月30日 10:41
  • 129

Web性能优化方法

如何提高web性能? 1、减少HTTP请求 一般来说要减少http请求通常从两个方面下手:减少图片的请求、减少脚本文件与样式表的请求 图片的减少通常有两种方式:css sprites、内联图片、...
  • u013372487
  • u013372487
  • 2015年12月17日 11:31
  • 2009

Android应用性能优化方案

1.避免创建不必要的对象 2.如果方法用不到成员变量,可以把方法声明为静态(static),这样性能会提高百分之十五到百分之二十 3.避免使用get/set存取字段,可以把字段声明为pub...
  • xushouwei
  • xushouwei
  • 2016年07月31日 21:28
  • 261

MySQL性能优化——易实现的MySQL优化方案汇总

1、索引优化及索引失效情况汇总2、表结构优化小技巧3、临时表的优化4、其它优化技巧...
  • zhangliangzi
  • zhangliangzi
  • 2016年08月26日 16:44
  • 4540

存储性能优化

技术内容来自该书《大型网站技术架构》
  • fengxinziyangyang
  • fengxinziyangyang
  • 2016年05月26日 15:10
  • 171

android应用性能优化方案

android应用性能测试可通过androidSDK自带的TraceView 工具进行检测,操作也很简单,详细步骤不在此一一列举,百度谷歌一大堆。以下是android开发中的优化方案: 1.避免创建...
  • whbwh123
  • whbwh123
  • 2012年07月15日 17:46
  • 781

web移动端页面性能优化方案

众所周知,在互联网行业里,移动端占有的比例越来越高了,尤其实在电商领域,用户购物大部分在移动端。比如淘宝双11,在移动端支付的接近7成。这就要求我们产品质量越来越高,那对于我们前端工程师来说也是一个挑...
  • u010683915
  • u010683915
  • 2017年05月01日 10:12
  • 3436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP 应用性能优化方案
举报原因:
原因补充:

(最多只允许输入30个字)