0

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

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

这里的问题是哪一个是更好的实践,哪一个会提供更好的性能?如果您对两者的工作都提供很少的见解,那将非常有帮助。

谢谢 :)

4

2 回答 2

2

这有过早优化的味道。我非常怀疑性能差异是否会引起关注。

我个人会先检查组合Contains,然后检索该值(如果存在),因为我认为这更清楚地描述了您在做什么(对于维护您的代码的人类读者)。

于 2012-06-28T07:03:13.417 回答
0

两种情况没有太大区别。但是与第二个相比,第一个会消耗一点时间。第二个选项在性能方面要好得多,它将检索天气缓存是否有数据。然后检查它是否为 Null。这将消耗更少的时间。

于 2012-06-28T05:32:07.470 回答