php修改代码不生效的问题 opcache缓存
大伙应该都知道,php是动态语言,每次运行时,都会重新编译,这会很耗性能的。而Zend OPcache 则是通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。简单的了解了Zend OPcache作用后,那么就去php配置文件看看了,果真,在配置文件的最下方返现这么写配置信息
- [opcache]zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
- ;OPcache 的共享内存大小,以兆字节为单位。
- opcache.memory_consumption=64
- ;用来存储临时字符串的内存大小,以兆字节为单位。
- ;PHP 5.3.0 之前的版本会忽略此配置指令。
- opcache.interned_strings_buffer=8
- ;OPcache 哈希表中可存储的脚本文件数量上限。
- ;真实的取值是在质数集合
- ;{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }
- ;中找到的第一个比设置值大的质数。 设置值的取值范围是 200 到 100000 之间。
- opcache.max_accelerated_files=4000
- ;如果缓存处于非激活状态,等待多少秒之后计划重启。
- ;如果超出了设定时间,则 OPcache 模块将杀除持有缓存锁的进程, 并进行重启。
- ;如果选项 opcache.log_verbosity_level 设置为 3 或者 3 以上的数值,
- ;当发生重启时将在日志中记录一条错误信息。
- opcache.force_restart_timeout=180
- ;检查脚本时间戳是否有更新的周期,以秒为单位。
- ;设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。
- ;如果 opcache.validate_timestamps 配置指令设置为禁用,那么此设置项将会被忽略。
- opcache.revalidate_freq=60
- ;如果启用,则会使用快速停止续发事件。
- ;所谓快速停止续发事件是指依赖 Zend 引擎的内存管理模块
- ;一次释放全部请求变量的内存,而不是依次释放每一个已分配的内存块。
- opcache.fast_shutdown=1
- ;仅针对 CLI 版本的 PHP 启用操作码缓存。 通常被用来测试和调试。
- opcache.enable_cli=1
配置文件里的“opcache.revalidate_freq=60”是说明,会每隔一分钟检测一次脚本文件是否更新,那么就找到问题的根本了,改为0,也就是每次运行时都去检测一下,重新启动php,搞定。
相关博文
php修改代码不生效的问题 opcache缓存