在这种情况下,我需要检查数据是否存在于缓存中,如果存在,则需要检索它或将其添加到缓存中。
我有两个选择。一个是我可以首先调用CacheManager.Contains(key),如果它在那里,我就调用CacheManager.GetData(key),或者我可以直接调用CacheManeger.GetData(key)并检查它是否为空值。我不确定哪一个更好。在第一种方法中,这似乎是一种很好的做法,但我为同一件事进行了两次调用。而在第二种方法中,我直接从缓存中检索数据,而不进行检查。
这里的问题是,哪一个是更好的实践,哪一个会提供更好的性能?如果你能提供一点关于两者工作的见解,那么这将是非常有帮助的。
谢谢:)
发布于 2012-06-28 15:03:13
这听起来像是过早的优化。我非常怀疑性能差异是否会令人担忧。
我个人倾向于首先检查Contains,如果值在那里,则检索它,因为我认为这更清楚地描述了您正在做什么(对于维护您的代码的人类读者)。
发布于 2012-06-28 13:32:07
这两种情况没有太大区别。但第一个选项消耗的时间要多一点,因为与第二个one.Second选项相比,性能要好得多,无论缓存有没有数据,它都会检索数据。然后检查它是否为Null。这将消耗更少的时间。
https://stackoverflow.com/questions/11238461
复制相似问题