调整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函数)
Oct 09 PHP
《APMServ 5.1.2》使用图解
Oct 23 PHP
php GeoIP的使用教程
Mar 09 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 PHP
php实现的表单验证类完整示例
Aug 13 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判断当前操作系统类型
2015/10/28 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
简述JS控制台的使用
2018/07/15 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
keras 多任务多loss实例
2020/06/22 Python
python regex库实例用法总结
2021/01/03 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
毕业生的自我评价范文
2013/12/31 职场文书
标准自荐信范文
2014/01/29 职场文书
情人节活动策划方案
2014/02/27 职场文书
客服专员岗位职责
2014/02/28 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
在校实习生求职信
2014/06/18 职场文书
学术会议邀请函
2015/01/30 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL