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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
php自动获取关键字的方法
Jan 06 PHP
PHP实现的json类实例
Jul 28 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
PHP isset()及empty()用法区别详解
Aug 29 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 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
python图像常规操作
2017/11/11 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
迟到检讨书500字
2014/02/05 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
Win10 Anaconda安装python-pcl
2022/04/29 Servers
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python