PHP 性能优化之 OPcache
在服务器上遇到现象,明明在服务器上已经修改了代码,但就是不生效!?
有可能是因为开启了 OPcache,线上环境为提升性能开启此配置(线上是很有必要的,推荐启用),在开发环境上代码时常发生修改,可以关闭或者缓存时间极短比如 1 秒,避免发生上述情况。
什么是 OPcache
OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能,存储预编译字节码的好处是: 省去了每次加载和解析 PHP 脚本开销。
PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展,对于 PHP 5.2 ~ 5.4 版本可以使用,PECL 扩展中的 OPcache 库。
怎么安装OPcache
PHP 5.5.0 及后续版本
OPcache 只能编译为共享扩展,如果你使用 --disable-all 参数,禁用了默认扩展的构建,那么必须使用 --enable-opcache 选项来开启 OPcache,编译之后就可以使用 zend_extension 指令来将 OPcache 扩展加载到 PHP 中。
类 Linux 系统
zend_extension=/full/path/to/opcache.so
Windows 系统
zend_extension=C:\path\to\php_opcache.dll
PHP 5.2 ~ 5.4 版本
PECL 扩展未与 PHP 捆绑,安装此 PECL 扩展相关的信息,可在手册中标题为 PECL 扩展的安装章节中找到,更多信息如新的发行版本、下载、源文件、维护人员信息及变更日志等,都在此处:http://pecl.php.net/package/ZendOpcache
PECL 扩展的 DLL 当前不可用
php.ini 推荐配置
开发环境
opcache.validate_timestamps = 1; // 开启时间戳验证,这样 OPcache 会检查脚本是否有更新
opcache.revalidate_freq = 1; // 设置检查脚本更新的频率(以秒为单位),配置 1 秒检查一次脚本变化
生产环境
opcache.validate_timestamps = 1; // 开启时间戳验证,这样 OPcache 会检查脚本是否有更新
opcache.revalidate_freq = 60; // 设置检查脚本更新的频率(以秒为单位),配置 60 秒检查一次脚本变化
打赏: 微信
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
即将新年啦~ 来拜个早年。
拜个早年
执行一些比较大的程序就比较实用吧?另外下面那两个广告机为啥不清掉2333
前段时间回老家了,最近有空得好好写点东西了,完全没有产出嘛。哈哈哈:)
拜访大佬
你好,欢迎~
呃,网址写错了
@Flyer:0U0
这个可以有