操作系统如何处理比内存大的python dict?

2024-04-24 13:30:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序,它将占用大量内存,主要是在dict中,这个dict将负责为一组非常大的键分配一个唯一的整数值。当我处理大矩阵时,我需要一个键到索引的对应关系,它也可以从中恢复(即,一旦矩阵计算完成,我需要将值映射回原始键)。在

我相信这个数量最终会超过可用内存。我想知道在交换空间方面如何处理。也许有更好的数据结构。在


Tags: 内存程序数据结构数量关系空间矩阵整数
3条回答

它只会以交换垃圾结束,因为哈希表有非常随机的内存访问模式。在

如果您知道映射超出了物理内存的大小,可以首先考虑在磁盘上使用数据结构。尤其是在计算过程中不需要数据结构时。当哈希表触发交换时,它也会在哈希表本身之外产生问题。在

如果数据超过内存,你需要一个数据库。当字典大于内存时,字典的索引设计得不好。在

交换空间是一个内核特性,对用户透明(python)。在

如果您确实有一个巨大的dict,并且不需要一次所有的数据,那么您可以查看redis,它可以满足您的需要。也可能不是:)

相关问题 更多 >