use*_*122 3 .net c# dictionary list c#-4.0
我试图确定列表和字典的最大大小(在RAM中).我也很好奇每个元素/条目可容纳的最大数量,以及每个条目的内存占用量.
我的理由很简单:我和大多数程序员一样,有些懒惰(这是一种美德).当我编写程序时,我喜欢编写一次程序,并尽可能地尝试将来证明它.我目前正在编写一个使用Lists的程序,但注意到迭代器需要一个整数.由于我的程序的功能仅受可用内存/编码样式的限制,我想编写它以便我可以使用带有Int64s的List或可能使用BigInts(作为迭代器).我在这里看到IEnumerable是一种可能性,但是想知道我是否可以将Int64填入Dictionary对象作为键,而不是重写所有内容.如果可以的话,我想知道与重写它相比可能会花费多少成本.
我的希望是,如果我的程序证明有用,我只需要在5年时间内重新编译以利用内存的增加.
是否在课程文档中指定?不,那么它没有说明.
就当前的实现而言,类本身的RAM中没有最大大小,如果你创建一个大小为2MB的值类型,将几千个推入一个列表,并接收一个内存不足的异常,这与此无关List<T>
.
在内部,List<T>
工作将阻止它拥有超过20亿件物品.快速回答是很难的Dictionary<TKey, TValue>
,因为事物在其中定位的方式更复杂,但实际上,如果我正在考虑处理十亿个项目(例如,如果是32位值,那么4GB),我希望将它们存储在数据库中并使用数据访问代码检索它们.
至少,一旦你处理的是一个4GB大小的数据结构,滚动你自己的自定义集合类不再算是重新发明轮子了.
归档时间: |
|
查看次数: |
14542 次 |
最近记录: |