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 相关文章推荐
一个改进的UBB类
Oct 09 PHP
简单的php 验证图片生成函数
May 21 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php文件操作实例代码
May 10 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHPUnit安装及使用示例
Oct 29 PHP
php递归创建目录的方法
Feb 02 PHP
php实现两个数组相加的方法
Feb 17 PHP
php强制用户转向www域名的方法
Jun 19 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 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
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
python黑魔法之编码转换
2016/01/25 Python
Python的re模块正则表达式操作
2016/05/25 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Python骚操作之动态定义函数
2019/03/26 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python计算n的阶乘的方法代码
2019/10/25 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
理工类毕业自我鉴定
2014/02/20 职场文书
安全生产目标责任书
2014/04/14 职场文书
暑期培训班招生方案
2014/08/26 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书