最近用Python的pdfplumber库处理PDF文件,在处理一个1000多页的PDF文件时,内存使用不断飙升,直至把16G内存全部耗尽。
代码除了使用pdfplumber之外,还使用了pandas做数据分析,一开始还以为是pandas部分的代码存在内存泄露,调试了很久才发现是pdfplumber造成的内存泄露。
解决方案在官方的issue中有提到, Memory issues on very large PDFs, 添加如下的代码即可:
with pdfplumber.open("data/my.pdf") as pdf: for page in pdf.pages: run_my_code() page.flush_cache()