在使用 pdfplumber 时会出现内存递增的情况, 最终导致内存的爆炸, 这一点在高频率地调用时尤为明显.
本篇主要解决的就是 pdfplumber 这个依赖包所导致的内存泄露问题.
TL;DR
解决方案在官方的issue中有提到, Memory issues on very large PDFs 和 Alto uso de memória/memory leak, 添加如下的代码即可.
with pdfplumber.open("data/my.pdf") as pdf:
for page in pdf.pages:
run_my_code()
page.flush_cache()
另外, 在Stack Overflow的一篇中有提到, 使用 del pdf
来手动清理pdf的残留.
结合以上两种方法, 在实际使用中确实解决了内存不断增加的问题.
Why
现在知道了如何解决这个问题, 但是这个问题又是如何产生的呢? 这是本篇真正需要探索的.
施工中