golang appengine goon lib 本地内存限制

golang appengine goon lib local memory limits

goon local memory cache, so it won't fill up the memory and cause some sort of our of memory exception? I can see there's a public FlushLocalCache 方法是否有任何默认限制,但我没有看到它在库中的任何地方被使用。如果库不自动清除本地内存缓存,那么使用什么模式可以确保您不会过度使用内存大小?

goon 的文档说本地缓存是按请求的,这意味着它只会在当前请求的持续时间内累积数据。

实际上,本地缓存是 Goon 对象的一部分,它应该是从应用引擎上下文创建的,从请求本身创建的(请参阅 NewGoon 和 FromContext 函数)。处理完请求后,可以对相应的缓存数据进行垃圾回收。

所以实际上没有什么限制可以在本地缓存中累积的内存,但实际上它是无害的,因为单个请求不应该处理大量数据。虽然在缓存中添加许多记录时请求循环的病态情况是可能的。

这种方法的缺点之一是如果不使用缓存数据,它往往会产生无用的垃圾。但它可能会简化一些代码。例如,可以在不增加复杂性的情况下优化掉基于参考数据的重复验证生成的往返。

请注意,如果本地缓存跨越多个请求,则很难定义适当的缓存失效策略同时仍保持对数据一致性的控制。