c# - 什么数据结构最好存储数百万数据但占用内存最少

标签 c# algorithm memory

<分区>

我目前正在使用列表、字典和数据表来存储我所有的数据, 但我想知道是否有更好的数据结构或方法(在较低级别)存储数据以便有效地使用内存。

任何帮助将不胜感激。

最佳答案

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

如果您需要索引数据,例如按键搜索,那么就大小而言最有效的数据结构之一就是尝试。使用什么键类型并不重要——整数、 float 或字符串,trie 可用于创建索引。整数或任何其他键都可以表示为二进制字符串并插入到 trie 中。有很多不同的 trie 数据结构,它们使用某种压缩来更有效地存储数据,例如 - Array Mapped Trie。您还可以在最低级别添加一些压缩,例如使用带整数的 base 128 编码或 Golomb 编码。

关于c# - 什么数据结构最好存储数百万数据但占用内存最少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13116781/

相关文章:

javascript - 获取数组中出现次数最多的项

algorithm - 巩膜检测

c++ - 堆已通过代码在多个地方损坏

c# - DAL 中的 F# 类型提供程序

c# - Windows 商店应用程序 Facebook SDK 集成

algorithm - 堆排序的下界?

c++ - 当我编译我的程序时,这个内存映射意味着什么?

c# - "Age-Record"数据结构

c# - 将 XML 文件序列化为 C# 对象

linux - Docker 容器中的尾部 : Cannot allocate memory