我正在寻找一些帮助来理解 Python 中大型列表、字典或数组的性能特征。我有大约 100 万个键值对需要临时存储(明年可能会增长到 1000 万个)。它们的键是数据库 ID,范围从 0 到大约 1.1M(有一些间隙),值是浮点数。
我正在计算pagerank,所以我的过程是将每个ID初始化为1,然后在内存中查找并更新大约十次,然后再将其保存回数据库。
我推测如果我使用数据库 ID 作为数组/列表的索引,列表或数组将是最快的。这将创建一个 gappy 数据结构,但我不明白查找或更新的速度有多快。我也不明白使用
arrays
而不是列表是否有很大的好处。为此使用 dict 非常自然,具有键值对,但我的印象是第一次构建 dict 会非常缓慢且内存密集,因为它会增长以容纳所有条目。
我还读到 SQLite 可能是使用
:memory:
标志的一个很好的解决方案,但我还没有深入研究。
无论如何,只是在这里寻找一些指导。在我深入研究时,任何想法都会非常感激。