PHP性能优化 产生高度优化代码


Posted in PHP onJuly 22, 2011

1.将PHP升级到最新版

提高性能的最简单的方式是不断升级、更新PHP版本。

2.使用分析器

网站运行缓慢的原因颇多,Web应用程序极其复杂,让人扑朔迷离。而一种可能性在于PHP代码本身。这个分析器可以帮助你快速找出造成瓶颈的代码,提高网站运行的总体性能。

Xdebug PHP extension提供了强大的功能,可以用来调试,也可以用来分析代码。方便开发人员直接跟踪脚本的执行,实时查看综合数据。还可以将这个数据导入到可视化的工具 KCachegrind中。

3.检错报告

PHP支持强大的检错功能,方便你实时检查错误,从比较重要的错误到相对小的运行提示。总共支持13种独立的报告级别,你可以根据这些级别灵活匹配,生成用户自定义的检测报告。

4. 利用PHP的扩展

一直以来,大家都在抱怨PHP内容太过繁杂,最近几年来开发人员作出了相应的努力,移除了项目中的一些冗余特征。即便如此,可用库以及其它扩展的数量还是很可观。甚至一些开发人员开始考虑实施自己的扩展方案。

5.使用PHP加速器

一般情况下,PHP脚本被PHP引擎编译后执行,会被转换成机器语言,也称为操作码。如果PHP脚本经过反复编译而得到相同的结果,那为什么不完全跳过编译过程呢?

通过PHP加速器,你完全可以实现这一点,它缓存了PHP脚本编译后的机器码,允许代码根据要求立即执行,而不经过繁琐的编译过程。

对PHP开发人员而言,目前提供了两种可用的缓存方案,一种是APC(Alternative PHP Cache,可选PHP缓存),它是一个可以通过PEAR安装的开源加速器。另一种流行的方案是Zend Server,它不仅提供了操作码缓存技术,也提供了相应页面的缓存工具。

6.通过内存缓存来避免高成本操作

PHP通常在检索和数据分析方面扮演着重要角色,这些操作可能会导致性能降低。实际上有些操作是完全没有必要的,特别是从数据库中反复检索一些常用的静态数据。不妨考虑一下短期使用 Memcached extension来缓存数据。Memcached的扩展缓存与libMemcached库协同工作,在RAM中缓存数据,也允许用户定义缓存的期限,有助于确保用户信息的实时更新。

英文原文:http://www.phpbuilder.com/columns/php-performance-tips/Jason_Gilmore07122011.php3?page=1

PHP 相关文章推荐
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
php图片上传类 附调用方法
May 15 PHP
2017年最好用的9个php开发工具推荐(超好用)
Oct 23 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
PHP多个版本的分析解释
Jul 21 #PHP
QQ登录 PHP OAuth示例代码
Jul 20 #PHP
模板引擎正则表达式调试小技巧
Jul 20 #PHP
php中批量替换文件名的实现代码
Jul 20 #PHP
关于php连接mssql:pdo odbc sql server
Jul 20 #PHP
PHP mcrypt可逆加密算法分析
Jul 19 #PHP
PHP中date()日期函数有关参数整理
Jul 19 #PHP
You might like
session 的生命周期是多长
2006/10/09 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
js实现随机点名功能
2020/12/23 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python机器学习之贝叶斯分类
2018/03/26 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python定时器线程池原理详解
2020/02/26 Python
如何一键升级Python所有包
2020/11/05 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
文员的职业生涯规划发展方向
2014/02/08 职场文书
环保建议书作文
2014/03/12 职场文书
计生专干事迹
2014/05/28 职场文书
任命书格式
2014/06/05 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
mysql数据库隔离级别详解
2022/06/16 MySQL