gpt4 book ai didi

c# - 列表与字典(最大尺寸、元素数量)

转载 作者:行者123 更新时间:2023-11-30 13:33:14 30 4
gpt4 key购买 nike

我正在尝试确定列表和字典的最大大小(在 RAM 中)。我也很好奇每个元素/条目的最大数量,以及每个条目的内存占用量。

我的理由很简单:我和大多数程序员一样,有些懒惰(这是一种美德)。当我写一个程序时,我喜欢写一次,并尽可能地让它面向 future 。我目前正在编写一个使用列表的程序,但注意到迭代器需要一个整数。由于我的程序的功能仅受可用内存/编码风格的限制,我想编写它以便我可以使用带有 Int64 或可能的 BigInts(作为迭代器)的列表。我在这里看到了 IEnumerable 的可能性,但想知道我是否可以将 Int64 作为键填充到 Dictionary 对象中,而不是重写所有内容。如果可以的话,我想知道与重写相比,这样做的成本是多少。

我希望,如果我的程序被证明有用,我只需要在 5 年内重新编译,就可以利用内存的增加。

最佳答案

是否在类的文档中指定?不,那么它是未指定的。

就当前的实现而言,类本身的 RAM 中没有最大大小,如果您创建一个大小为 2MB 的值类型,将几千个放入列表中,并收到内存不足异常,那没什么用List<T>做.

在内部,List<T> s 的运作将阻止它拥有超过 20 亿件元素。使用 Dictionary<TKey, TValue> 很难快速回答,因为事物在其中的定位方式更加复杂,但实际上,如果我要处理十亿个项目(例如,如果是 32 位值,则为 4GB),我希望将它们存储在一个数据库并使用数据访问代码检索它们。

至少,一旦您处理了一个大小为 4GB 的数据结构,滚动您自己的自定义集合类就不再算作重新发明轮子了。

关于c# - 列表与字典(最大尺寸、元素数量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8893374/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com