【发布时间】:2012-05-24 17:29:47
【问题描述】:
我需要建立查找表。我使用 Dictionary 它包含 45M long 和 45M int 。只要 key 和 int 作为 value 。集合的大小为 (45M*12) 其中 long 为 8 字节,int 为 4 字节 大小约为 515 MB。但实际上进程的大小是 1.3 Gbyte 。该过程仅包含此查找表。 Mat be,有没有字典的替代品?
谢谢
【问题讨论】:
-
进程大小为 1.3 GB:这不是问题。不要使用 TaskManager 来测量内存使用情况。
-
进程的大小是否会导致问题?您是否遇到 OOM(内存不足)异常?
-
这就是我们拥有数据库的原因。查资料!!
-
@banging 即使是内存数据库的查找时间也会比进程中的内存数据结构慢几个数量级。对于某些应用程序(例如资本市场交易),这可能是一个有意义的速度差异。并不是说这里就是这种情况,但在这些情况下,数据库并不总是答案。
-
长键的值范围是否有任何限制,可以直接用作 int 值数组的索引?
标签: c# collections lookup-tables