php的opcache缓存扩展(php页面代码刷新速度)
2017-02-20 20:42
501 查看
opcache (全程 zend opcache):
从php5.5开始,默认提供的php脚本缓存扩展,编译php5.5时加上参数--enable-opcache就可以编译opcache了,只是要启用的话必须配置。原理:
其实非常简单,opcache只是把把PHP执行后的数据(opcode)缓存到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的opcode代码从而提高速度,降低服务器负载
效果:
在实际应用当中能使QPS数大致增加3倍以上注意事项:
启用opcache后,典型的问题就是由于opcache的缓存加速机制导致的代码变更后无法立即看到效果。php代码被转换成可立即执行的“机器码”后会有一定的缓存时间后才会去检查原始的PHP文件是否变动过,具体视配置项opcache.revalidate_freq设置的秒数情况而定;这样就会导致某些情况下明明更新了PHP文件中的代码,但执行后却看不到改变后的效果,这就是因为opcache检查php文件变动的间隔时间尚未结束所导致。 这个问题并不是bug,而要视具体生产环境来设定opcache.revalidate_freq值,倘若php代码很少变动,建议该值设置的大一些,可减少opcahce由于检查php文件变动而带来的额外开销,比如7200 那么在变动php文件后如何才能快速降低opcache缓存带来的这种问题呢?最简单的方法就是更新代码后重启下php-fpm(nginx fast-cgi模式)或apache(apache-handler模式)。当然还可以自己书写一个php脚本,调用opcache_reset()函数重置所有opcache缓存字节码,或者使用opcache_invalidate(PHPfileDir,true)重置指定php文件的缓存字节码。相关文章推荐
- PHP禁止页面缓存的代码
- php防止刷新页面重复提交的代码一例
- 缓存PHP页面的代码,可以减轻CPU和MYSQL负担
- php中防止恶意刷新页面的代码小结
- LNMP nginx1.4.6+php5.5.11+mysql5.6.17+mecache+opcache编译安装+opcache参数详解+opcache可视化php页面代码
- 测试PHP代码和页面执行速度的类
- php 禁止页面缓存代码
- 页面定时跳转的js和php的代码实现和页面定时刷新
- PHP防止刷新重复提交页面的示例代码
- php的opcache缓存扩展
- php window环境下扩展memcached实现页面缓存
- php防止页面刷新代码
- PHP 缓存扩展opcache
- PHP防止刷新重复提交页面的示例代码
- php防止页面刷新代码
- PHP禁止页面缓存的代码
- 实现页面局部刷新、部分代码改变
- 详解PHP操作Memcache缓存技术提高响应速度的方法
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)