PHP5。5内置了ZendOptimizer opcache,它似乎工作得很好,基准测试似乎使它在性能上略优于APC。太棒了所以APC似乎即将退出。
我的问题是关于w3总缓存。W3TC可以选择使用APC进行数据库和操作码缓存,我在APCu(APC用户缓存)中或多或少都可以做到这一点。它与opcache的兼容性并不完美——例如,如果不对缓存失效等进行一些调整,就会出现一些奇怪的保存问题。
我想知道——将APCu用于opcache/dbcache的用户存储缓存是否值得?我关掉了它,我的CPU负载似乎有点低,考虑到Zend opcache已经在做繁重的工作,我想知道我是否真的完成了任何事情(是吗?)。
我更喜欢普通的安装(没有APCu),因为这是一件不需要担心的事情。但我想知道我是否真的失去了任何表现。有什么想法?
SO网友:Rarst
您似乎对APCu执行的功能有点困惑。它仅实现键/值存储。它不执行操作码缓存,因为APCu的全部目的是将其留给操作码的新Zend实现。
当您使用APC(u)和兼容的对象缓存时,插件WP切换到在其中存储其缓存(页面加载结束时本机丢弃)和瞬态(本机存储在数据库中)。虽然不太明显,但这是内部运行方式的重大变化。
因此,您的问题的答案分为两部分:
对象缓存是一个非常好的主意,因为它被WP大量使用,并且内存存储非常快。
APC(u)只是对象缓存的可能后端之一,如果您对其有问题或担忧,可以轻松探索任何替代方案(memcached、redis等)。