【问题标题】:Performance Hits for Caching Data in Memory在内存中缓存数据的性能命中
【发布时间】:2015-06-20 20:30:43
【问题描述】:

在 ASP.NET 中使用运行时内存缓存,存储数据的潜在缺陷是什么?一般有多少数据是“过多”的?在多大范围内?

【问题讨论】:

    标签: asp.net caching


    【解决方案1】:

    在测试了一些频繁使用缓存的代码之后,我可以测量到对性能没有明显影响。似乎当缓存接近内存限制时,它只是提早踢掉最旧的内容,因此对性能的影响可以忽略不计。

    【讨论】:

    • 还有更多。例如,Web Gardens、Web Farms 等在使用 asp.net 内存缓存之前需要考虑很多因素,这可能是巨大的陷阱。
    • 没错,对于网络农场/花园,使用的 RAM 将超过必要的数量。然而,适应这种情况的一种方法是指定单个缓存广告使用诱惑来获取它。
    • 那么问题就变成了实现缓存的性能/复杂性与提高主要源 (db) 的性能之间的关系。通常可以将数据库调整为比它们通常的性能要高得多,从而首先使对缓存的需求无效。在许多情况下,我已经看到 network 性能是比 DB 服务器更大的限制因素 - 如果您必须使用网络上的另一台机器来拉取它,那么您实际上可能会产生很大的负面影响.
    • .net 中的连接被缓存,因此在第一次点击后,它将在未来的查询中立即生效。使用using 就可以了。而且,是的,将数据复制到数据库进行缓存可能会导致速度变慢 - 哎呀,将数据复制到第三台机器上的内存缓存可能会导致速度变慢。因此,我说这不仅仅是您发布的有限测试的原因。
    • 现在,如果您主要处理 STATIC 数据,那么无论数据在网络花园/农场之间复制多少次,本地 asp.net 内存缓存都可以。
    猜你喜欢
    • 2011-08-02
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多