更快地重复使用 bz2.BZ2File 进行酸洗

Faster repetitive uses of bz2.BZ2File for pickling

我反复腌制多个对象,但不是连续的。但事实证明,pickled 输出文件太大(每个大约 256MB)。

所以我尝试了bz2.BZ2File而不是open,每个文件变成了1.3MB。 (是的,哇。)问题是它花费的时间太长(比如 95 秒酸洗一个对象),我想加快速度。

每个对象都是一个字典,它们中的大多数具有相似的结构(或层次结构,如果这样描述更好的话:几乎相同的一组键,并且对应于每个键的每个值通常具有一些特定的结构,并且很快)。许多字典值都是numpy数组,我认为那里会出现很多零。

你能给我一些建议让它更快吗?

谢谢!

我最终使用了 lz4,这是一种速度极快的压缩算法。

a python wrapper,安装方便:

pip install lz4