调整PHP的性能
程序员文章站
2022-06-29 13:47:54
负载瓶颈 一般主要在以下四个方面:1 数据库2 服务器cpu3 硬盘 i/o4 网络带宽除了这四个。还有什么值得我们优化的呢。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 的各方面的参数。 这个当然按照你自己项目环境来调整了。
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 的各方面的参数。 这个当然按照你自己项目环境来调整了。
上一篇: python中list删除方法比较
推荐阅读
-
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
-
PHP字符串函数系列之nl2br(),在字符串中的每个新行 ( ) 之前插入 HTML 换行符br
-
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
-
30 个很棒的PHP开源CMS内容管理系统小结
-
php 无限级分类,超级简单的无限级分类,支持输出树状图
-
使用VisualStudio开发php的图文设置方法
-
PHP中实现生成静态文件的方法缓解服务器压力
-
PHP性能优化工具篇Benchmark类调试执行时间
-
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
-
解析PHP强制转换类型及远程管理插件的安全隐患