我需要准确计算不同大小的词典大小。我在运行我的应用程序时尝试过进行一些内存监控,但是我在同时做了很多其他影响结果的事情。
如何计算(aprox)具有n个项目的词典的预期大小?我需要知道在不同的情况下我需要多少RAM 查找时间增加的因素是什么? O(1)总是?
我打算将词典用于10M +条目,可能更多。
的问题了答案 0 :(得分:2)
为了回答我自己的问题,我创建了一个小型测试程序。
结果如下:
包含10 000 000个随机条目的表中的100 000个随机查找需要0.02秒,该表使用200 MB的RAM。
一旦你获得100个以上的项目,字典使用的内存似乎是Int32索引的20-22倍。随着字典变大,比率下降。
预先分配内存似乎在插入时间上明显减少。
http://blog.tedd.no/2011/09/26/net-dictionary-speed-and-memory/
的测试和结果详情