我的 Python 代码将数百万个 ID 存储在各种数据结构中,以实现一个经典算法。运行时间还不错,但内存占用却很糟糕。
这些 id 是int
s。我猜想,由于 Python 的 int 类型起始于 28 个字节,并且会不断增长,因此代价非常大。由于它们只是不透明的 id,而不是真正的数学对象,所以我只用 4 个字节就可以了。
有没有一种方法可以在 Python 中存储 ID,而不用占用全部 28 个字节?例如,我是否需要将它们同时作为字典的键和值?
注意:像 BumPy 这样的常见解决方案在这里不起作用,因为它不是一个连续的数组。它是将键和值放入一个字典中,或者放入字典的字典中,等等。
我也乐意接受其他对 int 占用内存较少的 Python 解释器。