PHP修改完代码没有立马生效?
从PHP 5.5.0开始,PHP内置了字节码缓存功能,名为 Zend Opcache
,默认情况下,PHP会开启一个 OPcache
的缓存,因此我们可以
vim php.ini
找到 OPcache
的配置
[Zend Opcache]
zend_extension=opcache.so
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
;opcache end
;xcache
;xcache end
Zend Opcache
使用起来很简单,因为启用之后它会自动运行,Zend Opcache
会自动在内存中缓存预先编译好的PHP字节码,如果缓存了某个文件的字节码,就执行对应的字节码。
如果 php.ini
中配置了 opcache.validate_timestamps
值为0,需要小心,因为 Zend Opcache
将不能觉察 PHP 脚本的变化,必须手动清空 Zend OPcache
缓存的字节码,才能让它发现 PHP 文件的变动。这个配置适合在生产环境中设置为0,但在开发环境会带来不便,我们可以在开发环境中这样配置启用自动验证缓存功能:
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.validate_timestamps
如果启用,那么 OPcache
会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache
,也可以 通过重启 Web 服务器来使文件系统更改生效。
opcache.revalidate_freq
为 缓存过期时间配置,设置 60 秒后表示脚本 60 秒后才会去更新改动,改为 0则每次修改都能及时生效,或者修改成其它的时间。
一般我们是这样配置 opcache
的
opcache.validate_timestamps=1 //生产环境中配置为0
opcache.revalidate_freq=0 //检查脚本时间戳是否有更新时间
opcache.memory_consumption=64 //Opcache的共享内存大小,以M为单位
opcache.interned_strings_buffer=16 //用来存储临时字符串的内存大小,以M为单位
opcache.max_accelerated_files=4000 //Opcache哈希表可以存储的脚本文件数量上限
opcache.fast_shutdown=1 //使用快速停止续发事件
PHP官网中列出了 Zend Opcache
的全部设置:https://www.php.net/manual/zh/opcache.configuration.php
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfecke
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13