简介

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。

安装、配置

# 打开php.ini

# 添加一行
zend_extension=E:\php-7.2.8-ts\ext\php_opcache.dll
# 如果需要将 Xdebug 扩展和 OPcache 一起使用,必须在 Xdebug 扩展之前加载 OPcache 扩展。

# 设置以下选项
opcache.enable=1
opcache.enable_cli=1

更多配置项请参考这里

配置推荐

开发模式下推荐,直接禁用opcache扩展更好

opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=3000
opcache.memory_consumption=192
opcache.interned_strings_buffer=16

多台机器集群模式或者代码更新频繁时推荐,可以兼顾性能,方便代码更新

opcache.revalidate_freq=300
opcache.validate_timestamps=1
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16

稳定项目推荐,性能最好

opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16

启用

配置完成之后,重启服务器生效。

建议

  1. 不建议在开发环境开启opcache扩展
  2. opcache扩展和xdebug扩展存在兼容性问题,即使配置了实时监测,xdebug也无法检测到新的变化。以下引用官方一段话
# Xdebug does work together with the Zend Opcache, albeit with reducued or crippled functionality, as Opcache optimises out information that Xdebug could use.

参考链接