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网站提速三大“软”招
Oct 09 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
php checkbox 取值详细说明
Aug 19 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
PHP自毁程序(慎用)
Jul 09 PHP
最准确的php截取字符串长度函数
Oct 29 PHP
Yii2.0高级框架数据库增删改查的一些操作
Nov 16 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 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 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
php随机显示图片的简单示例
2014/02/15 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
Ant Design的Table组件去除
2020/10/24 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python 元类使用说明
2009/12/18 Python
Python中的并发编程实例
2014/07/07 Python
使用Python编写Linux系统守护进程实例
2015/02/03 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
岗位职责风险防控
2014/02/18 职场文书
高校教师岗位职责
2014/03/18 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
入党培养人考察意见
2015/06/08 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
python中取整数的几种方法
2021/11/07 Python