2024-04-24 13:30:01 发布
网友
我有一个python程序,它将占用大量内存,主要是在dict中,这个dict将负责为一组非常大的键分配一个唯一的整数值。当我处理大矩阵时,我需要一个键到索引的对应关系,它也可以从中恢复(即,一旦矩阵计算完成,我需要将值映射回原始键)。在
我相信这个数量最终会超过可用内存。我想知道在交换空间方面如何处理。也许有更好的数据结构。在
它只会以交换垃圾结束,因为哈希表有非常随机的内存访问模式。在
如果您知道映射超出了物理内存的大小,可以首先考虑在磁盘上使用数据结构。尤其是在计算过程中不需要数据结构时。当哈希表触发交换时,它也会在哈希表本身之外产生问题。在
如果数据超过内存,你需要一个数据库。当字典大于内存时,字典的索引设计得不好。在
交换空间是一个内核特性,对用户透明(python)。在
如果您确实有一个巨大的dict,并且不需要一次所有的数据,那么您可以查看redis,它可以满足您的需要。也可能不是:)
它只会以交换垃圾结束,因为哈希表有非常随机的内存访问模式。在
如果您知道映射超出了物理内存的大小,可以首先考虑在磁盘上使用数据结构。尤其是在计算过程中不需要数据结构时。当哈希表触发交换时,它也会在哈希表本身之外产生问题。在
如果数据超过内存,你需要一个数据库。当字典大于内存时,字典的索引设计得不好。在
交换空间是一个内核特性,对用户透明(python)。在
如果您确实有一个巨大的dict,并且不需要一次所有的数据,那么您可以查看redis,它可以满足您的需要。也可能不是:)
相关问题 更多 >
编程相关推荐