PHP APC 共享内存过期如何工作?

PHP APC 共享内存过期如何工作?

我正在使用 APC 并且发现仍然有25MB可用内存。

然而,在中Cache full count,我看到我8已经有了。

那么,为什么会发生这种情况?如果我的理解是:APC 不是 LRU 缓存,那么为什么在达到满计数后我仍然需要释放内存?

答案1

无论缓存失效算法究竟是什么,都可能存在一些目标可用空间量,或者至少预计每次运行失效例程时都会释放空间。因此,您应该预计几乎总是会有一些空间空闲。

说实话,我很难理解你到底看到了什么,以及你在问什么。如果你重新措辞你的问题并添加细节,你可能会得到更多的帮助。如果你提到的具体内存量对于回答你的问题很重要,那么你应该提供更多关于你总共分配了多少共享内存空间的背景信息,也许还可以提供关于可用空间如何随时间变化的信息。

25MB 的可用空间对我来说似乎太小了。

我认为该算法是当缓存已满时,APC 会对缓存内容进行全面检查,识别所有过期内容。我不确定如果没有过期内容它会做什么。据推测 Cache_full_count 是已发生此类检查的次数的计数。无论如何,这似乎是一个合理的猜测。如果您想要比猜测更好的结果,并且它不在 APC 文档中,那么您最好查看源代码。这通常是回答此类问题最简单的方法,通过这种方法您将学到很多东西。

相关内容