Symfony2:使用 OpCache 缓存 "Class Loader"
Symfony2: Cache a "Class Loader" with OpCache
PHP
具有一个名为 OPCache. Symfony2 recommended to use ApcClassLoader
(based on APC) or XcacheClassLoader
(based on XCache) 的新代码缓存模块,用于缓存从 class 到其包含文件的映射。我的服务器(带有 PHP 5.6 的 Apache 2.4)使用 OpCache
.
- 是否有
OpCache
的替代 "cache mapping"?我还没找到。
- 我可以同时使用
APC
和 OpCache
(我可以使用 ApcClassLoader)?我觉得不是。
在 PHP 5.4 版之前,APC 的使用是有意义的。
但即使是 5.4,它也不完全兼容。
从 PHP 5.5 开始,最好使用 APCu.
从 PHP 5.5 开始,Zend Opcache 是核心 PHP 发行版的一部分。
您可以将它与 APCu 结合使用。
将模拟对旧 APC 函数的调用:apc_*()
-> apcu_*()
。
"APC emulation" 将在加载 APCu ext 时显示在 phpinfo() 中。
因此给定 PHP 带有 OpCache 和 APCu 的 5.6,SF2 ApcClassLoader 应该可以工作。
问题 1 的答案:
OpCache 不像 APC 那样是一个完整的缓存,它是一个带有一些优化步骤的简单操作码缓存。而且它不是用户态缓存 - "just" 内部缓存,加快了 PHP 的处理速度。
PHP
具有一个名为 OPCache. Symfony2 recommended to use ApcClassLoader
(based on APC) or XcacheClassLoader
(based on XCache) 的新代码缓存模块,用于缓存从 class 到其包含文件的映射。我的服务器(带有 PHP 5.6 的 Apache 2.4)使用 OpCache
.
- 是否有
OpCache
的替代 "cache mapping"?我还没找到。 - 我可以同时使用
APC
和OpCache
(我可以使用 ApcClassLoader)?我觉得不是。
在 PHP 5.4 版之前,APC 的使用是有意义的。 但即使是 5.4,它也不完全兼容。 从 PHP 5.5 开始,最好使用 APCu.
从 PHP 5.5 开始,Zend Opcache 是核心 PHP 发行版的一部分。 您可以将它与 APCu 结合使用。
将模拟对旧 APC 函数的调用:apc_*()
-> apcu_*()
。
"APC emulation" 将在加载 APCu ext 时显示在 phpinfo() 中。
因此给定 PHP 带有 OpCache 和 APCu 的 5.6,SF2 ApcClassLoader 应该可以工作。
问题 1 的答案: OpCache 不像 APC 那样是一个完整的缓存,它是一个带有一些优化步骤的简单操作码缓存。而且它不是用户态缓存 - "just" 内部缓存,加快了 PHP 的处理速度。