PHP项目性能优化

标签: php 性能优化 | 发表时间:2015-01-21 20:20 | 作者:luxixing
出处:http://segmentfault.com/blogs

PHP项目性能优化的三个层次

  • PHP语言层级
  • PHP周边(服务器,数据库,webserver)
  • PHP底层

语言层级

  • 尽量使用PHP原生函数和常量,类
    如果要实现的功能有原生PHP函数,则不要自己用PHP实现
  • 尽量使用性能更高的内置函数
    比如isset和array_key_exists都可以使用,则使用isset
  • 尽量不要使用错误抑制符@
  • 不要使用PHP处理cpu密集的业务,交给适合的语言去处理
  • 减少io操作,比如在一次请求中要生成多条日志,则尽量缓存一次写入
  • 代码尽量向上兼容,即尽可能的使用PHP最新版本,比如generaotr实现的range等,数组短语法

周边(展开则相当庞大了)

  • Linux内核优化,硬件提升(ssd硬盘,加内存)
  • 减少跨网络请求
  • MySQL 索引使用,NoSQL+MySQL的配合使用,MySQL主从等
  • Nginx 的配置优化
  • PHP-FPM配置优化
  • 使用PHP的最新版本,目前PHP 5.6,今年即将会来的PHPNG(PHP7)
  • 使用xhprof分析项目源码,找出瓶颈进行优化

这部分内容需要继续学习研究

PHP底层

  • 使用opcode扩展 缓存PHP的opcode代码,减少PHP的编译过程
  • CPU密集或者复杂功能使用PHP的pecl扩展(swoole等优秀扩展的使用)
  • HHVM,百度再用,不过还是让我们坐等PHPNG的问世,有PHPNG,HHVM就不是必须的选择了

当然良好的编码风格(目前PSR很流行 http://www.php-fig.org/),优雅的代码实现也非常重要
写代码,不要仅仅为了实现目的和功能,还要有诗人的情怀,尽量打磨代码,精炼,如贾岛之推敲,追求自己代码的卓越

随着项目的发展,就会有架构方面的变更,来应对更大的并发和请求

相关 [php 项目 性能优化] 推荐:

PHP项目性能优化

- - SegmentFault 最新的文章
PHP项目性能优化的三个层次. PHP周边(服务器,数据库,webserver). 尽量使用PHP原生函数和常量,类. 如果要实现的功能有原生PHP函数,则不要自己用PHP实现. 尽量使用性能更高的内置函数. 比如isset和array_key_exists都可以使用,则使用isset. 尽量不要使用错误抑制符@.

项目性能优化经验--ZY(三)

- - 行业应用 - ITeye博客
读写分离,不是想做就做的,说分就分的,随便找个中间件把请求一转发就OK的. 比如,在项目中有个模块是购物车(现在的电子商务一般都需要存储购物车内容,因为存在PC,MOBILE等不同的终端),客户先点击添加购物车,然后结算(这时候会做个判断购物车是否有商品),在大并发情况下,mysql的读库和写库的同步(beanlog)严重的delay,导致购物车一直判断为空,订单无法下.

项目性能优化经验--ZY(二)

- - 行业应用 - ITeye博客
项目中,用了很多的LAZY级联,在页面用到的时候再去load,这样就使用Open Session In View的功能,在大并发且网络不好的情况下,会导致session迟迟不能释放(session要等页面request请求完全结束之后才close),即connection也没法释放. 之前项目都是使用EAGER,JSON数据传递的方式来处理,整个连接池太小不过100就能顶住1000+的并发下单.

项目性能优化经验--ZY项目

- - 行业应用 - ITeye博客
最近负责给公司某个ZY项目进行性能优化的一些经验分析. 压力测试到100并发,任何一个场景CPU暴高,接近100%. 查询jstack日志,发现大部分的线程block在tomcat 的 http11.connect 的poll方法上 或者是c3p0连接池的获取上. 同时发现该项目数据库连接池配置了2000+,仍然不够用,100并发.

vue项目你一定会用到的性能优化!

- - 掘金 前端
提起 性能优化 很多人眼前浮现的面试经验是不是历历在目呢. 反正,性能优化在我看来他永远是前端领域的 热度之王. 而本渣最近维护的项目恰巧在这个方向下了很大功夫,一些经验之谈奉上,希望对大家有些许帮助. 既然说性能优化,那他总得有一个公认的标准,这就是我们很多次听到的 Lighthouse. 在很多单位,都有着自己的性能监控平台,我们只需要引入相应的sdk,那么在平台上就能分析出你页面的存在的性能问题,大家是不是学的很神奇.

项目上线一年,整理了一份SpringBoot性能优化方案!

- - IT瘾-dev
文章来源:https://juejin.cn/post/7062548565800779789. SpringBoot已经成为Java届的No.1框架,每天都在蹂躏着数百万的程序员们. 当服务的压力上升,对SpringBoot服务的优化就会被提上议程. 本文将详细讲解SpringBoot服务优化的一般思路,并附上若干篇辅助文章作为开胃菜.

MySQL性能优化

- sun - IT程序员面试网
在笔试面试中,尤其是像百度,淘宝这些数据量非常大,而且用LAMP架构的公司,数据库优化方面就显得特别重要了. 此外,除了数据库索引之外,在LAMP结果如此流行的今天,数据库(尤其是MySQL)性能优化也是海量数据处理的一个热点. 下面就结合自己的经验,聊一聊MySQL数据库优化的几个方面. 首先,在数据库设计的时候,要能够充分的利用索引带来的性能提升,至于如何建立索引,建立什么样的索引,在哪些字段上建立索引,上面已经讲的很清楚了,这里不在赘述.

Hebernate 性能优化

- - 企业架构 - ITeye博客
文章分为十三个小块儿对Hibernate性能优化技巧进行总结性分析,分析如下:. 一、在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数 据量的,可以使用session. clear()或者session. evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象.

Hbase 性能优化

- - CSDN博客云计算推荐文章
因 官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果. 所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 默认值:3分钟(180000ms). 说明:RegionServer与Zookeeper间的连接超时时间.

JavaScript性能优化

- - ITeye博客
互联网泡沫让投资者长了记性:态度更加谨慎.         如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍JavaScript性能优化的技巧,并提供相应的测试用例,供大家在自己使用的浏览器上验证, 同时会对特定的JavaScript背景知识做一定的介绍.