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中使用与Perl兼容的正则表达式
Nov 26 PHP
php实现网站插件机制的方法
Nov 10 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
php使用fopen创建utf8编码文件的方法
Oct 31 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php生成rss类用法实例
Apr 14 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
php实现的双色球算法示例
Jun 20 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
深入理解PHP内核(一)
2015/11/10 PHP
php中的依赖注入实例详解
2019/08/14 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
Yii框架安装简明教程
2020/05/15 PHP
接收键盘指令的脚本
2006/06/26 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Python程序语言快速上手教程
2012/07/18 Python
Python 备份程序代码实现
2017/03/06 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
python爬取youtube视频的示例代码
2021/03/03 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
工程招投标邀请书
2014/01/30 职场文书
营业用房租赁协议书
2014/11/26 职场文书
增值税发票丢失证明
2015/06/19 职场文书