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之对抗Web扫描器的脚本技巧
Oct 01 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
CI框架整合smarty步骤详解
May 19 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
php异常处理使用示例
2014/02/25 PHP
PHP SOCKET编程详解
2015/05/22 PHP
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
医药个人求职信范文
2014/01/29 职场文书
怎么写自荐书范文
2014/02/12 职场文书
企业法人授权委托书
2014/04/03 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers