php修改代码不生效的问题 opcache缓存

大伙应该都知道,php是动态语言,每次运行时,都会重新编译,这会很耗性能的。而Zend OPcache 则是通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。简单的了解了Zend OPcache作用后,那么就去php配置文件看看了,果真,在配置文件的最下方返现这么写配置信息

 

  1. [opcache]zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
  2. ;OPcache 的共享内存大小,以兆字节为单位。
  3. opcache.memory_consumption=64
  4. ;用来存储临时字符串的内存大小,以兆字节为单位。
  5. ;PHP 5.3.0 之前的版本会忽略此配置指令。
  6. opcache.interned_strings_buffer=8
  7. ;OPcache 哈希表中可存储的脚本文件数量上限。
  8. ;真实的取值是在质数集合
  9. ;{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }
  10. ;中找到的第一个比设置值大的质数。 设置值的取值范围是 200 到 100000 之间。
  11. opcache.max_accelerated_files=4000
  12. ;如果缓存处于非激活状态,等待多少秒之后计划重启。
  13. ;如果超出了设定时间,则 OPcache 模块将杀除持有缓存锁的进程, 并进行重启。
  14. ;如果选项 opcache.log_verbosity_level 设置为 3 或者 3 以上的数值,
  15. ;当发生重启时将在日志中记录一条错误信息。
  16. opcache.force_restart_timeout=180
  17. ;检查脚本时间戳是否有更新的周期,以秒为单位。
  18. ;设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。
  19. ;如果 opcache.validate_timestamps 配置指令设置为禁用,那么此设置项将会被忽略。
  20. opcache.revalidate_freq=60
  21. ;如果启用,则会使用快速停止续发事件。
  22. ;所谓快速停止续发事件是指依赖 Zend 引擎的内存管理模块
  23. ;一次释放全部请求变量的内存,而不是依次释放每一个已分配的内存块。
  24. opcache.fast_shutdown=1
  25. ;仅针对 CLI 版本的 PHP 启用操作码缓存。 通常被用来测试和调试。
  26. opcache.enable_cli=1

配置文件里的“opcache.revalidate_freq=60”是说明,会每隔一分钟检测一次脚本文件是否更新,那么就找到问题的根本了,改为0,也就是每次运行时都去检测一下,重新启动php,搞定。

php修改代码不生效的问题 opcache缓存
标签: