[PyMuPDF / pypdfium2] pdf → 画像 の展開評価 | TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
デジタルアーカイブ等の用途でPDFを高解像度画像へ変換する際、変換後のデータ量は膨大になり、メモリ消費が急増する。特にCloud Runのようなメモリ制約のあるサーバーレス環境では、メモリ不足によるプロセス停止が避けられず、リソース効率の高い処理手法の確立が不可欠である。
// Approach
PyMuPDFとpypdfium2を用い、DPI(100/300)およびPDFの規模(114ページ/758ページ)を変えて比較検証を実施。PDFのオープンから全ページの画像出力完了までのプロセスを対象とし、実行時間とメモリ使用量を定量的に評価した。
// Result
実行時間は両者で大きな差は見られなかったが、メモリ使用量においてpypdfium2がPyMuPDFの1/2から1/4程度と、大幅に優れた結果を示した。リソース制約が厳しい環境においては、pypdfium2の採用が極めて有効であると結論付けている。
Senior Engineer Insight
> 本検証は、単なる速度比較ではなく「リソース制約下での生存戦略」という実戦的な視点に基づいている。特にメモリ消費の差は、サーバーレス環境におけるコスト最適化やスケーラビリティに直結する。PyMuPDFは多機能だが、メモリ管理のオーバーヘッドが無視できない。pypdfium2の採用は、インフラコストを抑えつつ、大規模なバッチ処理を安定稼働させるための極めて合理的な選択である。ただし、ライブラリの内部実装に依存する部分もあるため、実装時には明示的なメモリ解放を徹底するなど、エンジニアリングによる制御も併せて検討すべきである。