PHP 5.5已经发布,它有一个名为OPCache的新代码缓存模块,但似乎没有任何文档.
那么它的文档在哪里以及如何使用OPcache?
\在PHP中做什么?
例如,CSRF4PHP有\FALSE,\session_id和\Exception:
public function __construct($timeout=300, $acceptGet=\FALSE){
$this->timeout = $timeout;
if (\session_id()) {
$this->acceptGet = (bool) $acceptGet;
} else {
throw new \Exception('Could not find session id', 1);
}
}
Run Code Online (Sandbox Code Playgroud) 我最近搬到PHP 5.4并安装了OPCache,它功能非常强大!
如何暂时禁用缓存?
我试过了 :
ini_set('opcache.enable', 0);
Run Code Online (Sandbox Code Playgroud)
但它没有效果.
谢谢
我正在运行带有以下包的Web服务器; php-apc 3.1.7-1 php5-fpm 5.3.10-1ubuntu3.10
但是,我已经在Ubuntu 14.04上构建了一个新的服务器,似乎php-apc不再可用了.
因此,APC是我的巨大流量的生命服务器(100 k /每日独特访问)
我对PHP的缓存机制有点困惑.新服务器包括以下软件包:php-apc 4.0.2-2build1 php5-apcu 4.0.2-2build1 php5-fpm 5.5.9 + dfsg-1ubuntu4.7
phpinfo()给我模仿"apc".据我所知,APC被APCu取代.
https://github.com/cepa/kickasscache 我正在为我的缓存运行这个免费课程,它确实在我的案例中保存了很多cpu/mem.但我无法理解这是否与APCu相同?
如果不是,我该如何设置正确的缓存?因为我的新服务器资源有限,我需要一个解决方案.
php -v返回
PHP 5.5.9-1ubuntu4.7 (cli) (built: Mar 16 2015 20:47:39)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
Run Code Online (Sandbox Code Playgroud)
这是否意味着默认启用OPcache?
我正在尝试在我的服务器上启用opCache(ubuntu 12.04 LTS运行apache 2.4.7时PHP Version 5.5.10-1+deb.sury.org~precise+1).
在开始做任何事情之前,我读了这篇高度相关的帖子,告诉我opCache默认是禁用的,我必须手动启用它.
我进入php.ini并发现没有文本opcache.so,也注意到与opcache相关的所有内容.像这样:
[opcache]
; Determines if Zend OPCache is enabled
;opcache.enable=0
; Determines if Zend OPCache is enabled for the CLI version of PHP
;opcache.enable_cli=0
Run Code Online (Sandbox Code Playgroud)
这没关系,因为这个人告诉它被禁用了.但是,当我查阅phpinfo();它时,向我显示以下内容(根据我的理解,它告诉我已经使用了opCache).

我的opcache是否已启用并使用,如何查看/验证它?
我有一个m3.xlargeEC2实例,我PHP 5.5.11今天更新了.
有了这个更新,它覆盖php55-pecl-apc了php55-pecl-apcu.
在阅读和实验之后,我的理解是APC已被替换OPCache,除了可以带回来的关键值存储APCu.
在将我的配置调整到看起来合理的东西之后,在登录时使用Wordpress现在非常慢,至少300-900ms更糟糕(前端通过清漆缓存,并且工作完美...但是当你使用管理员时故意不是缓存,而是作为罪恶缓慢).
我升级时做了一系列基准测试,每个步骤的样本量很小.随着我的继续,它的恶化程度越来越差.
-->-->现在我只是闲着OPCache,没有APCu.
对于我的设置我使用最新的wordpress,一些大插件,但我不能把它们取下,因为它们很重要.幸运的是,清漆可以完成大部分工作.我的网站根目录有4个内核,16GB内存,~10k文件.我也没有真正的硬核应用程序或除了wordpress之外的任何东西,它是一个相当普通的设置.我认为这是可能有用的东西.
配置:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.revalidate_path=0
opcache.save_comments=0
opcache.load_comments=0
opcache.fast_shutdown=1
opcache.enable_file_override=0
opcache.optimization_level=0xffffffff
opcache.inherited_hack=1
opcache.dups_fix=0
opcache.blacklist_filename=/etc/php-5.5.d/opcache*.blacklist
opcache.max_file_size=2M
opcache.consistency_checks=1
opcache.force_restart_timeout=180
opcache.error_log=/var/log/php-fpm/5.5/opcache.log
opcache.log_verbosity_level=1
opcache.preferred_memory_model=
opcache.protect_memory=0
Run Code Online (Sandbox Code Playgroud) 在文档中,它说"主要用于调试",这会让我觉得"除非你遇到问题并且需要做一些调试,否则永远不会启用它",但是阅读大部分我能找到的关于它的内容都说"启用它"opcache .enable_cli 1"但为什么?我找不到有关此事的任何信息,所以如果有人知道,如果文档基本上说保持0,我为什么要启用它?
我想使用PHP 7.但似乎没有键值内存缓存的选项.
PHP 7有可用的替代方案吗?
或者有没有办法使用PHP7的Opcache来实现键值内存缓存?
有一个opcache.optimization_level php.ini指令.它是默认的位掩码0xffffffff- 因此默认情况下OPcache会执行所有优化.
OPcache做了哪些优化?传递字节码的是什么?
后续问题:OPcache可以很好地优化代码模式吗?例如,HHVM可以跳过仅包含类/函数声明的文件的执行,它只填充类/函数表.
大家好,只是一个与OPcache相关的问题,因为我不理解它并在Google上找到答案:
当我们谈论用户空间缓存时,它意味着什么?我知道PHP预先与新的Zend OPcache扩展捆绑在一起,并且这个扩展将操作代码缓存到ram中,以免过多地压缩处理器,该处理器应该在每次请求时转换为操作码的操作码,但是当APCu时他们说它实现了用户区域缓存?
什么是用户空间缓存?是否可以将APCu和Zend OPcache保持在一起?应该使用Zend OPcache而不是APCu吗?
感谢您的关注,希望有人能够澄清我的疑惑!
opcache ×10
php ×10
apc ×3
caching ×1
namespaces ×1
opcode ×1
performance ×1
php-5.5 ×1
wordpress ×1
xcache ×1
zend-cache ×1