【发布时间】:2014-01-13 16:03:20
【问题描述】:
我只是想不通,我的配置哪里出错了,因为我错过了太多而命中率太低了。最终导致内存泄漏。
看看你自己。请注意,我使用的是 APCu 而不是 APC。
http://i.stack.imgur.com/3DPxo.png
您对我可能做错了什么或出了什么问题有任何想法吗?
是的,我知道以下问题和答案:APC Hits/Misses and configuration。然而,经过多次调整配置,我仍然无法理解为什么会有这么多的失误。
我有一个简单的元搜索应用程序,其中所有搜索结果都使用 APC 进行缓存。以下代码演示了我如何处理此类数据。
$dynamic_variable = "query_{$query}_page$this->page"; // This is just one case of many.
// Get Data from Cache
$cache_variable = "api1_{$dynamic_variable}_cached";
$result = $this->cache->get($cache_variable);
if ( ! $result) {
$result = .....
$this->cache->save($cache_variable, $result, $this->cache_timeout);
}
return $result;
顺便提一下,该应用目前正在使用 CodeIgniter 2.1.4,并迁移到 https://github.com/ellislab/codeigniter/tree/release/3.0。
【问题讨论】:
-
检查这个SO问题stackoverflow.com/questions/10446229/…希望你能在那里找到答案
-
我预计会错过......但不会那么多。
-
我对 apcu 不熟悉。但是,鉴于您有大量未使用的内存,显而易见的解释是,您放入缓存中的内容永远不会被再次请求,或者您从缓存中请求的东西永远不会被放入其中。
-
@rambocoder APCu 本质上只是去掉了操作码缓存的 APC——它现在只是一个客户端缓存,其想法是从 5.5 开始使用 OpCache 来进行操作码缓存
标签: php codeigniter memory-leaks apc