Jac*_*ack 28 php zend-cache opcache php-5.5
在文档中,它说"主要用于调试",这会让我觉得"除非你遇到问题并且需要做一些调试,否则永远不会启用它",但是阅读大部分我能找到的关于它的内容都说"启用它"opcache .enable_cli 1"但为什么?我找不到有关此事的任何信息,所以如果有人知道,如果文档基本上说保持0,我为什么要启用它?
dus*_*uff 32
丢开.它主要用于调试OPcache本身的问题.
opcache.enable_cli从命令行运行PHP脚本时,该选项启用PHP OPcache(使用php命令).但是,请记住,对于PHP 5.x,OPcache扩展通过将缓存的操作码存储在当前进程的内存中来工作.这仅在运行PHP的进程将处理可以重用这些操作码的多个请求时有用,例如在Web服务器或FastCGI中.对于像PHP CLI这样运行一个"请求"并退出的进程,它只会浪费内存和时间.
iqu*_*ito 31
使用PHP7和基于文件的缓存,现在可以为CLI启用opcache.最好的可能是为CLI配置一个单独的php.ini,配置如下:
opcache.enable=1
opcache.enable_cli=1
opcache.file_cache="/tmp/php-file-cache"
opcache.file_cache_only=1
opcache.file_cache_consistency_checks=1
Run Code Online (Sandbox Code Playgroud)
opcache.file_cache_only=1确保禁用内存中的opcache并且仅使用文件,这是您想要的CLI.这应该会大大增加执行时间.
在用于FPM的php.ini中,您将需要使用相同的设置opcache.file_cache_only=0,因此使用内存中的opcache并将文件缓存用作回退(这也使FPM更快,因为文件缓存减少了预热时间重启FPM或重置opcache,因为缓存的文件仍然存在).
这样,CLI和FPM共享文件缓存,FPM将内存缓存作为第二个primpary缓存以获得最大速度.PHP7的一大改进!只需确保选择opcache.file_cacheCLI和FPM都可以写入的目录,并且同一个用户进行写入/读取.
2017年更新
我不建议再使用FPM文件缓存(仅用于CLI),因为在设置时无法重置缓存opcache.validate_timestamps=0- 文件缓存会阻止PHP-FPM识别任何更改,因为opcache_reset()甚至是完整的PHP -FPM重新启动不会影响文件缓存,并且文件缓存没有等效项,因此永远不会注意到更改的脚本.我在2016年3月将此报告为" 错误 "/" 功能请求 ",但目前这不是一个问题.请注意,如果你使用opcache.validate_timestamps=0!
| 归档时间: |
|
| 查看次数: |
18604 次 |
| 最近记录: |