当您尝试添加一个变量到APC和APC缓存已满会发生什么? 它会自动从缓存中删除最少使用的变量?
Answer 1:
据APC:运行时配置 “,在运行的可用内存的高速缓存的情况下,高速缓存将被完全删掉,如果TTL等于0。否则,如果TTL大于0,APC将尝试删除过期条目“。
所以,如果有一个非零TTL,它会删除其生存时间已经过去了条目。 ;)否则,它会删除整个缓存。
我注意到这一点并没有真正解决,如果缓存内存用完,会发生什么,你有过高的TTL。
Answer 2:
从以往的经验(我们在生产中运行),如果不设置TTL或TTL是非常非常高的,没有什么是过时的,整个缓存刷新(如在制造空)。 你真的想尝试和避免这种情况,因为它会导致对PHP具有处理下一个请求负载峰值,监守对需要APC的每个文件都需要编译它,并将其存储在内存中(这是一个稍微慢的过程比没有在所有启用的高速缓存)。 此外,如果你正在recieving大量的流量和清空缓存,你将体验到高速缓存满贯(见谷歌对于这个邪恶)
作为一个侧面说明,请参阅相当粗略的指南APC和东西,这个老演示需要提防http://www.slideshare.net/oscon2007/os-gopal也许出头过时的,但理论仍然适用。
文章来源: PHP APC: What happens when APC cache is full?