在内存中保留大量复杂对象



我希望内存中始终有大约 20,000 个复杂对象(应用程序将无限循环运行)。我正在考虑使用List<MyObject>,然后将列表转换为Dictionary<int, MyObject>,或者只是避免全部列出并将对象保留在字典中。我想知道,每次我需要查找对象时将列表转换为字典是否昂贵?什么会更好?是否始终将它们存储为字典?或者有列表并使用 lambda 来获取所需的对象?还是我应该考虑其他选择?

请注意,当对象检索导致出列时,我不需要队列或堆栈行为。

提前谢谢。

对列表使用 lambda 查找是 O(N),对于 20,000 个项目来说,这并非不可想象。但是,如果您知道始终需要通过已知键获取对象,则可以使用O(1)的字典 - 这与算法一样快。因此,如果有某种方法可以构建数据/应用程序,以便可以围绕某种可预测的、可重复的、唯一的键进行检索,这将最大限度地提高性能。最糟糕的事情(从性能的角度来看)是针对列表的一些复杂的查找例程,但有时这是不可避免的。

无论你在做什么,如果你需要访问List,那么你将需要遍历它以找到你想要的任何内容。

如果您需要访问 Dictionary ,那么您可以选择使用键值立即检索您要查找的内容,或者,如果必须,您仍然可以遍历DictionaryValues

只需使用Dictionary.

相关内容

  • 没有找到相关文章

最新更新