mirror of
https://github.com/ocrmypdf/OCRmyPDF.git
synced 2026-08-02 16:41:50 -04:00
Since v16.4.3, OCRmyPDF forced pdfminer's read buffer to 256 MiB to work around a pdfminer bug that mishandled tokens split across the buffer boundary (gh #1361). On Windows this caused a severe performance regression (gh #1662): CPython's BufferedReader.read(n) eagerly allocates an n-byte buffer on every read, so pdfminer's thousands of seek+read cycles each paid a ~30 ms 256 MiB allocation (this allocation is lazy and effectively free on Linux). For a typical PDF the "Scanning contents" phase went from ~5s on Linux to ~60s on Windows. The underlying pdfminer bug was fixed upstream in pdfminer.six 20250327 (pdfminer/pdfminer.six#1030), with a follow-up for tokens split across streams in 20260107 (pdfminer/pdfminer.six#1158). Remove the monkeypatch entirely and raise the minimum pdfminer.six to 20260107 so we rely on the upstream fix instead. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>