我有一个大的内存库信息(在一个具有大字典的类中),它需要加载到内存中,并在数据编译成这个超大型结构(高达20 up)后随着信息的接收而更新。我需要将这个更新的内存库保存到磁盘上,以便稍后加载。然而,使用pickle,我还没有找到一种方法,可以通过在序列化数据时流式传输数据来对文件进行pickle (我不能超过25.5 GB)。如果您注意到,在拥有20 it的结构和需要序列化的pickle之间,它远远超出了我的内存资源。
有没有办法在序列化信息时让pickle流式传输信息,或者我必须自己制作函数来将内存写入文件?
有没有一种方法可以保持较低的内存成本(在过程完成时将内存从卸载到磁盘)?
发布于 2021-01-21 10:57:48
如果有人一定要知道,我通过将我的大型内存结构转换为三个较小的内存结构(依赖于顺序)来解决这个问题,然后我可以对其进行pickle。当我加载内存结构时,我还必须将内存重新连接到一个更大的结构中。节省的内存不是很多,但这是我现在能做的一个变通办法。当然,这种解决方案依赖于结构。
https://stackoverflow.com/questions/65819466
复制相似问题