调整PHP的性能


Posted in PHP onOctober 30, 2013

负载瓶颈 一般主要在以下四个方面:
1  数据库
2 服务器CPU
3 硬盘 I/O
4 网络带宽
除了这四个。还有什么值得我们优化的呢。php真很强。今天就说下在PHP的 脚本级上来调整PHP的性能。
如果你想在单台服务器 上提高PHP的性能。我们可以使用“编译缓存”。 编译cache 不单能提高性能而且会随着PHP程序的容量和代码复杂性的增加 服务器的性能也增加。什么是编译cache呢。等下告诉你。我们先说下PHP编译脚本文件所要做的两步吧:
1 php引擎读脚本文件,解释脚本然后在ZEND引擎里生成可执行的中间代码
2  ZEND 第二次开始 执行中间代码
我 们要注意。第一步是在每次PHP脚本文件被请求的时候都要重复一次的东西。 而且这个过程,会因为脚本里面又包括 include()require() eval()  而递归 重复执行第一步。可想而知消耗有多大了。特别PHP文件很大的时候。所以为什么建议写PHP文件时候不赞成行数过多。
说到这里大家就明白了。其实我们可以在 第一步那里做点文章。如果我们把第一步解释文件那里把解释后的代码缓存到共享内存里面。如果有第二个请求这个脚本的时候就可以跳过第一步而直接进入第二步。因为第一步已经cache在内存里面了。
我们看图比较一下
先看下如果没使用 编译cache 的情况
再来个使用了编译cache 的情况
行了看看就明白了。是吧。有了 编译cache 少走了很多弯路。 特别是在你的代码里有大量的  include 呀 require 呀的时候特别有效。
现在介绍三个编译cache:
1 The ionCube Accelerator  不开源的说。
2 TheZendAccelerator 要钱的罗。我穷呀
3  APC  这个我最喜欢因为不要钱。效果还挺好哦
我们就说APC
安装 大概是这样的。通过pear来安装
#pear install apc
修改下php.ini 加上扩展
extension = /path/to/apc.so
OK就这么简单。但你再次运行PHP的时候。  这个APC就已经有作用了。编译代码就cache 在了share 内存中了。那个爽呀。
如果是window 的 找下这个里面有 这个扩展
APC 安装完了后我们还需要调整下APC 的各方面的参数。 这个当然按照你自己项目环境来调整了。

PHP 相关文章推荐
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
php如何利用pecl安装mongodb扩展详解
Jan 09 PHP
PHP数据过滤的方法
Oct 30 #PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 #PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
Oct 29 #PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 #PHP
单点登录 Ucenter示例分析
Oct 29 #PHP
php中过滤非法字符的具体实现
Oct 29 #PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 #PHP
You might like
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
python计算圆周率pi的方法
2015/07/11 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python中static相关知识小结
2018/01/02 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python常用的json标准库
2019/02/19 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
打架检讨书50字
2014/01/11 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
委托公证书
2014/04/08 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
暑期学习心得体会
2014/09/02 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL