加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

介绍PHP中的OPcache 扩展

发布时间:2022-07-21 13:51:46 所属栏目:PHP教程 来源:互联网
导读:OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。PHP 5.5 之后的版本都是默认绑定该扩展的,之前的 PHP 5.2,5.3 和 5.4 版本可以使用 PECL 扩展中的 OPcache
  OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。PHP 5.5 之后的版本都是默认绑定该扩展的,之前的 PHP 5.2,5.3 和 5.4 版本可以使用 » PECL 扩展中的 OPcache 库。
 
  配置项解释
 
 
  opcache.memory_consumption=128
 
  opcache.interned_strings_buffer=8
 
  opcache.max_accelerated_files=4000
 
  opcache.revalidate_freq=60
 
  opcache.fast_shutdown=1
 
  opcache.enable_cli=1
 
  该配置项是PHP手册推荐,在 php.ini 中间进行设置,关于每个配置项的说明如下:
 
  opcache.memory_consumption :OPcache 的共享内存大小,以兆字节为单位。
  opcache.interned_strings_buffer :用来存储预留字符串的内存大小,以兆字节为单位。 PHP 5.3.0 之前的版本会忽略此配置指令。
   opcache.validate_timestamps : 如果启用,那么 OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。
  opcache.fast_shutdown :如果启用,则会使用快速停止续发事件。 所谓快速停止续发事件是指依赖 Zend 引擎的内存管理模块 一次释放全部请求变量的内存,而不是依次释放每一个已分配的内存块。从 PHP 7.2.0 开始,此配置指令被移除。 快速停止的续发事件的处理已经集成到 PHP 中, 只要有可能,PHP 会自动处理这些续发事件。
  更多配置项说明请参考 OPcache手册。
  OPcache函数
 
  OPcache提供了一些内置函数,用于控制字节码的缓存状态,使用前提是需要开启 OPcache 扩展。
 
  opcache_compile_file :不需要运行即可编译缓存PHP脚本,如果单独使用参数 FILE 必填,FILE 为脚本路径,例如:opcache_compile_file('index.php')
  opcache_get_configuration :获取 opcache 的当前所有配置信息
  opcache_get_status :获取 opcache 的当前缓存信息,信息包含共享内存空间是否满载等
   opcache_reset :充值所有 opcache 缓存,等待下一次执行编译
  开发注意事项
 
  在本地开发环境中,建议关闭 OPcache 扩展,缓存可能会让本地调试产生很多问题,减低开发效率。
 
  关于共享内存的知识扩展
 
  共享内存是一种在相同机器中的应用程序之间交换数据的有效方式。内存对于程序的执行效率要高于磁盘I/O,所以合理的使用内存可以提升程序的效率。它的应用场景有web请求、数据库查询、模板引擎缓存、以及当前文章里提到的 OPcache 对于 PHP 的编译缓存。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读