【问题标题】:Why is NHibernate.Cache.HashtableCacheProvider not intended for production use?为什么 NHibernate.Cache.HashtableCacheProvider 不适合生产使用?
【发布时间】:2010-11-28 17:10:43
【问题描述】:

NHibernate documentation 和书 NHibernate In Action 声明缓存提供程序 NHibernate.Cache.HashtableCacheProvider 不适合生产使用。但是,我找不到这样做的原因。有谁知道原因吗?

【问题讨论】:

    标签: nhibernate second-level-cache


    【解决方案1】:

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

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

    【讨论】:

    • “具有错误策略的缓存是内存泄漏的另一个名称。” blogs.msdn.com/b/oldnewthing/archive/2006/05/02/588350.aspx
    • 谢谢!无限增长已经足以让我在我的应用程序中不使用它。但是,您能否进一步详细说明合理的缓存语义/超时问题?测试究竟是什么意思——“真正的”测试(单元测试等)或只是一些临时的“玩弄”测试?
    • @Marco:缓存必须能够通过优先级,处理依赖关系,过期来优化有限资源(内存)的使用...... HashtableCache 足以进行单元测试(例如,断言调用相同的存储库方法两次只导致一次数据库调用)。它也非常适合玩耍,因为它是可预测的。
    猜你喜欢
    • 2014-12-05
    • 2018-04-24
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 2011-06-20
    • 2011-03-10
    • 2012-11-16
    • 2021-07-03
    相关资源
    最近更新 更多