我有一个快速而肮脏的python脚本,它以pdf作为输入,并将页面保存为图像数组(使用pdf2image)。
我不明白的是: 72张图片占用了920 of的内存。但是,如果我将图像保存到文件中,然后重新加载它们,我将得到略高于30-40 is的图像(图像的合并大小为29 is)。这有意义吗?
我还试图使用泡菜转储数组,在它由于MemError而崩溃之前,我得到了大约3GB的数据。我完全不知道是什么东西消耗了这么多记忆..。
发布于 2018-10-16 15:13:40
占用大量内存的原因很可能是由于过多的元数据使用、未压缩的图像数据(原始颜色数据)或库/工具本身内的无损图像编解码器。
它也可能取决于大小,数量的图像等。
最后一句,关于泡菜。泡菜本身就是Python用来保存某些变量状态的内存转储格式。将内存转储到磁盘上的会话状态是一项相当繁重的任务。Python不仅需要将所有数据转换为启用保存状态的格式,而且在保存数据时还必须将所有数据复制到已知的状态。因为为了做到这一点,它可能消耗了相当多的内存和磁盘。(只有这样才能将数据分块)。
在回答一些注释时,一种解决方案是传递参数fmt=jpg,该参数使图像处于压缩状态,从而降低了资源的使用。
https://stackoverflow.com/questions/52835741
复制相似问题