调整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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
php删除指定目录的方法
Apr 03 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 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数据库调用类调用实例(详细注释)
2012/07/12 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
详解如何较好的使用js
2016/12/16 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
Python3 能振兴 Python的原因分析
2014/11/28 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
python实现AdaBoost算法的示例
2020/10/03 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
学校卫生检查制度
2014/02/03 职场文书
高中生操行评语
2014/04/25 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
2014年统计工作总结
2014/11/21 职场文书
教师工作态度自我评价
2015/03/05 职场文书
python如何做代码性能分析
2021/04/26 Python