调整PHP的性能

 更新时间:2013年10月30日 15:03:06   作者:  
php真很强。今天就说下在PHP的 脚本级上来调整PHP的性能。 如果你想在单台服务器 上提高PHP的性能。我们可以使用“编译缓存”。
负载瓶颈 一般主要在以下四个方面:
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 数组排序 array_multisort与uasort的区别

    php 数组排序 array_multisort与uasort的区别

    其实,简单的说两者的最重要的区别:array_multisort()排序之后,原数组“键”丢失。uasort()排序之后,保留原来的“键”。
    2011-03-03
  • PHP获取文件行数的方法

    PHP获取文件行数的方法

    这篇文章主要介绍了PHP获取文件行数的方法,实例分析了两种php获取文件行数的技巧,需要的朋友可以参考下
    2015-06-06
  • php解析字符串里所有URL地址的方法

    php解析字符串里所有URL地址的方法

    这篇文章主要介绍了php解析字符串里所有URL地址的方法,涉及php操作数组、字符串及URL的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • PHP中常用的字符串格式化函数总结

    PHP中常用的字符串格式化函数总结

    这篇文章主要介绍了PHP中常用的字符串格式化函数总结,本文讲解的函数是WEB中经常用到的,例如取出空格和字符串填补函数、字符串大小写的转换、和HTML标签相关的字符串格式化等,需要的朋友可以参考下
    2014-11-11
  • php控制文件下载速度的方法

    php控制文件下载速度的方法

    这篇文章主要介绍了php控制文件下载速度的方法,实例分析了php操作文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 关于时间计算的结总

    关于时间计算的结总

    关于时间计算的结总...
    2006-12-12
  • php字符串截取的简单方法

    php字符串截取的简单方法

    这篇文章介绍了php字符串截取的简单方法,有需要的朋友可以参考一下
    2013-07-07
  • PHP连接MySql数据库方法简化版

    PHP连接MySql数据库方法简化版

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,这篇文章主要介绍了PHP连接mysql数据库,数据库连接静态工具类,简化连接
    2022-07-07
  • PHP的pcntl多进程用法实例

    PHP的pcntl多进程用法实例

    这篇文章主要介绍了PHP的pcntl多进程用法,实例分析了pcntl操作多进程的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • php通用检测函数集合

    php通用检测函数集合

    php下一些通用的检测字符串的函数集合,方便大家使用
    2008-07-07

最新评论