缓存轻量级数据

时间:2010-01-10 18:55:24

标签: asp.net performance

缓存一行数据有什么意义,特别是如果它的生命周期可能需要一次或两次。或者我应该缓存一切。为什么?

由于

1 个答案:

答案 0 :(得分:3)

如果该行数据需要5个小时来计算,那么它可能是值得的。如果计算需要0.001秒,那么它可能是不值得的。

大多数缓存系统(包括ASP.NET中的缓存系统)允许您对正在缓存的项目设置缓存策略。如果计算成本低廉,则将其标记为低优先级缓存项。如果它非常昂贵,那么你可以将它标记为高优先级,从而尽可能长时间地将它保存在缓存中。

这是Cache.Insert的重载,允许您指定相对优先级:

public void Insert(
    string key,
    Object value,
    CacheDependency dependencies,
    DateTime absoluteExpiration,
    TimeSpan slidingExpiration,
    CacheItemPriority priority,
    CacheItemRemovedCallback onRemoveCallback
)

我们越了解情景,我们就能提供更准确的答案。

一般情况下,如果数据很小而且每个用户都不建议使用缓存,因为几乎没有保存。

与所有性能考虑因素一样,首先要定义您的性能目标,然后查看是否符合这些目标。如果你不满足他们,那么你必须衡量你的应用程序,看看成本的来源,然后改善这些地方,直到你达到目标。