为什么NHibernate.Cache.HashtableCacheProvider不用于生产?

为什么NHibernate.Cache.HashtableCacheProvider不用于生产?,nhibernate,second-level-cache,Nhibernate,Second Level Cache,和本书声明缓存提供程序NHibernate.cache.HashtableCacheProvider不用于生产。然而,我找不到这样做的理由。有人知道原因吗?因为它不支持任何合理的缓存语义(我想到的第一个例子是:超时),而且它基本上是无限增长的 它仅用于测试,因为它只提供了本地缓存的最简单实现。“策略错误的缓存是内存泄漏的另一个名称。”谢谢!无限增长已经足够让我不在应用程序中使用它了。但是,您能否进一步阐述合理的缓存语义/超时问题?测试到底意味着什么?“真正的”测试(单元测试等)或只是一些临时的“

和本书声明缓存提供程序
NHibernate.cache.HashtableCacheProvider
不用于生产。然而,我找不到这样做的理由。有人知道原因吗?

因为它不支持任何合理的缓存语义(我想到的第一个例子是:超时),而且它基本上是无限增长的


它仅用于测试,因为它只提供了本地缓存的最简单实现。

“策略错误的缓存是内存泄漏的另一个名称。”谢谢!无限增长已经足够让我不在应用程序中使用它了。但是,您能否进一步阐述合理的缓存语义/超时问题?测试到底意味着什么?“真正的”测试(单元测试等)或只是一些临时的“玩转”测试?@Marco:缓存必须能够通过优先排序、处理依赖项、过期等来优化有限资源(内存)的使用。。。HashtableCache足以进行单元测试(例如,断言两次调用同一存储库方法只会导致一次DB调用)。它也很适合玩,因为它是可预测的。