前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP性能加速: OPcache

PHP性能加速: OPcache

作者头像
lukachen
发布2023-10-22 15:29:05
2670
发布2023-10-22 15:29:05
举报
文章被收录于专栏:LukaChen BlogLukaChen Blog

虽然是老生常谈,还是想在此记录一下。 之前在开发环境的服务器上也遇到过此问题,为何明明在服务器上已经修改了代码,但就是不生效!? 有可能就是因为开启了OPcache,线上环境为了加速PHP性能(线上开启此扩展是很有必要的),开启了此配置,然而在开发环境上代码时常发生修改,需要注意这个配置(开发环境甚至可以关闭),以避免发生上述问题。

什么是OPcache

代码语言:javascript
复制
OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能,存储预编译字节码的好处就是: 省去了每次加载和解析 PHP 脚本的开销。

PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用 » PECL 扩展中的 OPcache 库。

怎么安装OPcache

PHP 5.5.0 及后续版本

代码语言:javascript
复制
OPcache 只能编译为共享扩展。 如果你使用 --disable-all 参数 禁用了默认扩展的构建, 那么必须使用 --enable-opcache 选项来开启 OPcache。

编译之后,就可以使用 zend_extension 指令来将 OPcache 扩展加载到 PHP 中。在非 Windows 平台使用 zend_extension=/full/path/to/opcache.so, Windows 平台使用 zend_extension=C:\path\to\php_opcache.dll。

PHP 5.2, 5.3 和 5.4 版本

代码语言:javascript
复制
此 » PECL 扩展未与 PHP 捆绑。

安装此 PECL 扩展相关的信息可在手册中标题为 PECL 扩展的安装章节中找到。更多信息如新的发行版本、下载、源文件、 维护人员信息及变更日志等,都在此处: » http://pecl.php.net/package/ZendOpcache.

PECL 扩展的 DLL 当前不可用。

php.ini推荐配置

代码语言:javascript
复制
开发环境:
opcache.validate_timestamps = 1; // 检查php脚本有发生变化 0:不检查, 1:检查
opcache.revalidate_freq = 0;

生产环境:
opcache.validate_timestamps = 0; // 检查php脚本有发生变化 0:不检查, 1:检查 (设置0之后,每次执行代码不检查脚本更新,所以当我们修改 PHP 代码时需要手动清除OPcache: opcache_reset() )
opcache.revalidate_freq = 0;     // 由于 validate_timestamps = 0 这个参数就不会被看了,可随意填写。

关键词: * 操作码缓存 * 预编译的字节码 * opcode

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP 5.5.0 及后续版本
  • PHP 5.2, 5.3 和 5.4 版本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档