调整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--用万网的接口实现域名查询功能
Dec 13 PHP
基于php-fpm的配置详解
Jun 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
PHP生成唯一订单号
Jul 05 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
Oct 25 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
关于laravel框架中的常用目录路径函数
Oct 23 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读取csv实现csv文件下载功能
2013/12/18 PHP
php简单的上传类分享
2016/05/15 PHP
php处理带有中文URL的方法
2016/07/11 PHP
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
javascript制作2048游戏
2015/03/30 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
Python中类的继承代码实例
2014/10/28 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Python判断有效的数独算法示例
2019/02/23 Python
python输入错误后删除的方法
2019/10/12 Python
django序列化serializers过程解析
2019/12/14 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
建议书标准格式
2014/03/12 职场文书
搞笑征婚广告词
2014/03/17 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
五五普法心得体会
2014/09/04 职场文书
公司承诺函范文
2015/01/21 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
MySQL事务的隔离级别详情
2022/07/15 MySQL
postgresql中如何执行sql文件
2023/05/08 PostgreSQL