🦔
.NETでPDF⇒JPEG変換をベンチマークしてみた
はじめに
PDFをレンダリングしてJPEGファイルに変換する処理を、下記のライブラリーを利用して評価してみました。基本的に配布ライセンスの必要ないライブラリで、日本で入手しやすいものをいくつかピックアップしました。
ライブラリ | ライセンス | 非Windows | サイズ |
---|---|---|---|
Aspose.PDF | 有償 | ✔ | 47,364[KB] |
Cube.Pdf.Pdfium | 無償 | 4,691[KB] | |
PDFtoImage | 無償 | 31,398[KB] | |
Windows.Data.Pdf | 無償 | 7,164[KB] | |
Xfinium.Pdf | 有償 | ✔ | 7,150[KB] |
Cube.Pdf.PdfiumとWindows.Data.Pdfについては、Xで情報提供いただきました。ご協力ありがとうございました!
- https://x.com/tt_clown/status/1732247692934524979?s=20
- https://x.com/triemetrics/status/1732245211643011256?s=20
Windows.Data.Pdfは、本来UWP用のライブラリですが、Windows10以降であれば実は利用する方法があります。詳細は下記の記事をご覧ください。
なおWindows.Data.Pdfのサイズは.NET Framwwork時のサイズで.NET 6.0+の場合は0になります。
環境・評価条件
BenchmarkDotNet v0.13.10, Windows 11 (10.0.22621.2715/22H2/2022Update/SunValley2)
13th Gen Intel Core i9-13900H, 1 CPU, 20 logical and 14 physical cores
.NET SDK 8.0.100
[Host] : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2 [AttachedDebugger]
ShortRun : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
Job=ShortRun IterationCount=3 LaunchCount=1
WarmupCount=3
重たい処理で誤差が小さいのでShortRunにしています。
評価コード
下記を参照。
計測結果
Cube.Pdf.Pdfiumが消費メモリーや配布モジュールのサイズではとくに優秀でした。処理速度も十分でており、とても魅力的です。
単純な処理速度ではWindows.Data.Pdfがもっとも早く、消費メモリーや配布サイズも優秀です。
非Windows環境ではAspose.PDFが優秀なのですが、ちょっと高めです。国内だとXlsoftさんが代理店になっていて、ライセンス費用は下記のリンク先にあります。
これらを踏まえて、環境やお財布などで判断して選定するのが良さそうです。
Discussion