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 mysql数据库操作分页类
Jun 04 PHP
劣质的PHP代码简化
Feb 08 PHP
php的大小写敏感问题整理
Dec 29 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
PHP错误和异长常处理总结
Mar 06 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
php日期操作技巧小结
Jun 25 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 PHP
PHP如何解决微信文章图片防盗链
Dec 09 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编程语言开发动态WAP页面
2006/10/09 PHP
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
Stop SQL Server
2007/06/21 Javascript
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
RequireJs的使用详解
2017/02/19 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
汽车技术服务英文求职信范文
2014/01/02 职场文书
公司年终奖分配方案
2014/06/16 职场文书
群教个人对照检查材料
2014/08/20 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers