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 相关文章推荐
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
php树型类实例
Dec 05 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
php统计数组元素个数的方法
Jul 02 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
php while循环控制的简单实例
May 30 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 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
php xml文件操作代码(一)
2009/03/20 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
php写app用的框架整理
2019/09/29 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
js实现动态时钟
2020/03/12 Javascript
Python 序列的方法总结
2016/10/18 Python
python Pygame的具体使用讲解
2017/11/03 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
python super函数使用方法详解
2020/02/14 Python
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
你常见到的runtime exception
2016/09/05 面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
卫生系统先进事迹
2014/05/13 职场文书
导师就业推荐信范文
2014/05/22 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
交通安全教育主题班会
2015/08/12 职场文书
初中生物教学随笔
2015/08/15 职场文书
mysql数据库实现设置字段长度
2022/06/10 MySQL