Python 如果Dill文件对于RAM来说太大,是否有其他方法可以加载它

Python 如果Dill文件对于RAM来说太大,是否有其他方法可以加载它,python,memory,deserialization,pickle,dill,Python,Memory,Deserialization,Pickle,Dill,如果一个dill文件对RAM来说太大,那么可以用另一种方法加载它。例如,当我加载大约1.2GB的序列化对象时,python3抛出内存错误 file = open('SerializedData.pkl', 'rb') data = dill.load(file) 这不会通过,因为RAM太小。但是,是否可以以不同的方式加载它,以便在不使RAM过载的情况下提取数据?将其加载到何处?内存看到问题了吗……如果你有一个大物体,就像你的问题所暗示的那样,我认为你对此无能为力。虽然你可以试着增加交换的大小,

如果一个dill文件对RAM来说太大,那么可以用另一种方法加载它。例如,当我加载大约1.2GB的序列化对象时,python3抛出内存错误

file = open('SerializedData.pkl', 'rb')
data = dill.load(file)

这不会通过,因为RAM太小。但是,是否可以以不同的方式加载它,以便在不使RAM过载的情况下提取数据?

将其加载到何处?内存看到问题了吗……如果你有一个大物体,就像你的问题所暗示的那样,我认为你对此无能为力。虽然你可以试着增加交换的大小,祈祷你的脚本不会有太大的波动。它也可能是一个bug,像这样的dill或cPickle。前面评论的附录:如果您使用的是类Unix系统,那么可能还需要增加ulimits。相关:我是dill的作者。这取决于您试图加载的内容。如果您正在序列化数据,则可以使用压缩或简化格式。例如,如果它是
numpy.ndarray
,则可以使用
numpy
序列化。使用
dill
,您可以进行多种设置,例如
byref
recurse
,这些设置可以更改腌渍的大小。但是,如果您希望pickle数据,我会检查数据对象是否有首选的序列化方法。然而,对于一个已经建成的泡菜来说,我相信你已经完蛋了。