cachemanager.contains vs cachemanager.getdata

时间:2012-06-28 05:18:29

标签: c# .net .net-3.5

我有一种情况需要检查数据是否存在于缓存中,如果存在,我需要检索它,否则将其添加到缓存中。

我这里有2个选项。一个是我可以先调用CacheManager.Contains(key),如果它在那里,我会调用CacheManager.GetData(key),否则我可以直接调用CacheManeger.GetData(key)并检查它是否为空值。我不确定哪一个更好。在第一种方法中,它似乎是一种很好的做法,但我正在做同样的事情。而在第二种方法中,我直接从缓存中检索数据而不进行检查。

这里的问题是哪一个是更好的做法,哪个会提供更好的表现?如果你对两者的工作都能提供很少的见解那么它会非常有用。

谢谢:)

2 个答案:

答案 0 :(得分:2)

这种过早优化的气味。我非常怀疑性能差异会引起关注。

我个人首先检查组合Contains,然后检查值是否存在,因为我认为更清楚地描述了您正在做的事情(对于维护代码的人类读者)。

答案 1 :(得分:0)

两种情况之间没有太大差异。但与第二个相比,第一个消耗的时间稍长。第二个选项是更好的性能,它将检索数据天气缓存是否有。然后检查它是否为Null。这将消耗更少的时间。