【发布时间】:2017-02-25 07:28:00
【问题描述】:
我正在编写一个将 PDF 转换为 PNG 图像的函数,它看起来像这样:
import os
from wand.image import Image
def convert_pdf(filename, resolution):
with Image(filename=filename, resolution=resolution) as img:
pages_dir = os.path.join(os.path.dirname(filename), 'pages')
page_filename = os.path.splitext(os.path.basename(filename))[0] + '.png'
os.makedirs(pages_dir)
img.save(filename=os.path.join(pages_dir, page_filename))
当我尝试并行化它时,内存在增长,我无法完成对 PDF 文件的处理:
def convert(dataset, resolution):
Parallel(n_jobs=-1, max_nbytes=None)(
delayed(convert_pdf)(filename, resolution) for filename in glob.iglob(dataset + '/**/*.pdf', recursive=True)
)
当我串行调用函数时,内存保持不变。
joblib 如何管理每个并行实例的内存分配?
如何修改我的代码以使内存在并行运行时保持不变?
【问题讨论】:
标签: python parallel-processing multiprocessing wand joblib