【发布时间】:2013-12-31 16:20:39
【问题描述】:
我需要能够遍历实例化的特定类型的所有对象。
传统上,我会将这些对象缓存在一个列表中,并在需要时遍历它们。然而,这些对象的数据量很大,而且数量很多,所以我担心在整个程序期间将这么多对象保留在内存中。
另一方面,我正在研究查询它们并将查询存储在 IEnumerable 中,以便它们实际上并不存储在内存中,而是在每次迭代时解决。然而,我担心在每次迭代中必须找到每个对象的开销。 (我还没有决定实际上可以有效地做到这一点的机制,但那是另一个问题)
在我看来,这是您需要找到平衡点的问题之一,缓存可能是内存密集型的,但 IEnumerable 可能是处理密集型的。所以我想知道其他人对此有何看法。
【问题讨论】:
-
您已经正确地确定了权衡。没有人能告诉你什么选择最适合你。测量。
标签: c# list caching ienumerable