php的opcache缓存扩展
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的opcache缓存扩展的更多相关文章
- php的opcache缓存扩展(php页面代码刷新速度)
opcache (全程 zend opcache): 从php5.5开始,默认提供的php脚本缓存扩展,编译php5.5时加上参数--enable-opcache就可以编译opcache了,只是要启用 ...
- PHP 缓存扩展opcache
opcache (全程 zend opcache): 从php5.5开始,默认提供的php脚本缓存扩展,编译php5.5时加上参数--enable-opcache就可以编译opcache了,只是要启用 ...
- 搭建LNMP发布ecshop系统及压测启用opcache缓存与否的情况
安装环境:CENTOS6.5,nginx1.6.2,php-5.5.18,mysql5.5.38 在安装软件之前安装epel源,就可以直接用yum安装libmcrypt,mhash,mcrypt等ph ...
- SmartWiki开发日记之Laravel缓存扩展
SmartWiki简介请阅读: http://www.cnblogs.com/lifeil/p/6113323.html 因为SmartWiki的演示站点部署在阿里云上,阿里云有一个128M免费的Me ...
- LNMP笔记:安装 Xcache 缓存扩展,降低服务器负载
LNMP笔记:安装 Xcache 缓存扩展,降低服务器负载 2014/11/27 教程笔记 4,743 14 WordPress 精品主机推荐:恒创主机 | 阿里云(本站目前所用云主机) 倡萌 ...
- PHP的另一个高效缓存扩展:Yac
之前的文章中我们已经学习过一个 PHP 自带的扩展缓存 Apc ,今天我们来学习另一个缓存扩展:Yac . 什么是 Yac 从名字其实就能看出,这又是鸟哥大神的作品.毕竟是 PHP 的核心开发人员,他 ...
- 编译安装 Zend Opcache 缓存Opcache,加速 PHP
Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP Lice ...
- EF批量操作数据与缓存扩展框架
前言 在原生的EF框架中,针对批量数据操作的接口有限,EF扩展框架弥补了EF在批量操作时的接口,这些批量操作包括:批量修改.批量查询.批量删除和数据缓存,如果您想在EF中更方便的批量操作数据,这个扩展 ...
- drf 缓存扩展
drf缓存给了一个非常方便的扩展,使用起来相当方便 1- 安装 pip install drf-extensions 2-配置 在settings里面增加两项配置 # drf扩展REST_FRAM ...
随机推荐
- js selection对象使用方法
IE:document.selection FireFox:window.getSelection() document.selection只有IE支持,window.getSelection()也只 ...
- GO开发环境搭建
GO开发环境搭建 1)下载GO SDK,并安装 https://golang.google.cn/dl/ 2)下载GO IDE:GOLAND,并安装 3)设置GOROOT和GOPATH 4)新建一个工 ...
- 服务 Service 简单案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- JavaScript之Date日期对象扩展
各种时间加减 收藏起来以备后用 //名称:日期加法函数 //参数:part(year.month.day.hour.minute.second.millisecond) //返回:Date对象 Dat ...
- SimpleCaptcha生成图片验证码内容为乱码
转自:https://blog.csdn.net/wlwlwlwl015/article/details/51482065 前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作 ...
- Linux中安装绿色软件的方法
一.简介 我们平时安装软件时,想要把一个可直接运行的软件及其依赖库Copy到Linux中的某个文件夹下.但是为了快速方便地执行它,不想每次都进入此目录中执行.解决的方法是向PATH中相关的路径下投放软 ...
- DataGuard---->物理StandBy的角色切换之switchover
Switchover,无损切换,通常是用户手动触发或者有计划地让其自动触发,如硬件升级等. 步骤: 1.Primary数据库转换为StandBy角色 2.StandBy数据库(之一)转换为Primar ...
- java 7中新增的CPU和负载的监控
java 7中新增的CPU和负载的监控 import java.lang.management.ManagementFactory; import java.lang.management.Opera ...
- 11G新特性 -- Statistics Preferences
Statistics Preferences新特性可以实现对指定对象进行信息收集. 可以在table.schema.database.global级别设置statistics preference. ...
- MySQL -- 异步I/O
linux上,innodb使用异步IO子系统(native AIO)来对数据文件页进行预读和写请求.行为受到参数innodb_use_native_aio控制.默认是开启的,且只是适用于linux平台 ...