哪种数据结构最适合存储数百万个数据但占用的内存最少

时间:2012-10-29 06:22:08

标签: c# algorithm memory

我目前正在使用Lists,Dictionaries和DataTable来存储我的所有数据, 但我想知道是否有更好的数据结构或方法(在较低的层次上)存储数据以便有效地使用内存。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这取决于您的数据和使用情况。如果只想存储数据,那么最有效的方法是使用数组作为整数或浮点数(或任何其他普通旧数据)和字符串池作为字符串。

如果您需要索引数据,例如按键搜索,则尝试使用大小最有效的数据结构之一。使用什么密钥类型无关紧要 - 整数,浮点数或字符串,trie可用于创建索引。整数或任何其他键可以表示为二进制字符串并插入到trie中。有许多不同的trie数据结构,它们使用某种压缩来更有效地存储数据,例如 - Array Mapped Trie。您还可以在最低级别添加一些压缩,例如使用带有整数的基本128编码或Golomb编码。