# Conversion benchmarks: time, CPU and memory

> Measured wall time, CPU seconds and peak memory of 78 PDF, image, OCR, e-book and Office conversions on two machines (an Apple M1 Max laptop and an x86 Xeon server), with the method and a CSV under CC BY 4.0.

## Key facts

- 78 measured cases from 8 engines, measured between 2026-10-09 and 2026-10-15.
- Only the headless Chromium cases were also measured on the x86 server (6 rows). There, CPU seconds per job were 2.3 to 2.7 times the M1 figures for ordinary documents, and 10.8 times for the tallest full-page screenshot.
- All inputs were generated by our own scripts, except two public web pages used for the URL cases; no customer files were used.
- Data: https://aiipworld.com/data/conversion-benchmarks.csv (CSV, one row per case). License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).

Last reviewed: 2026-10-15

## Method

- M1 Max: Apple MacBook Pro, Docker Desktop, arm64 Linux containers. Most cases ran one at a time in a fresh container limited to 1 CPU (images, PDF) or 2 CPUs (e-books), with a read-only root file system; the median of 3 runs is reported.
- x86 server: 2 x Intel Xeon Gold 6138 (2.0 GHz), about 80 production containers running during the test, so these numbers are noisy.
- CPU seconds come from the container's cgroup counters; memory is the peak the container or browser reported (the column memory_metric says which).
- Wall time excludes queueing, upload and download. Cases marked uses_public_internet include the network round trip.

## HTML, web pages and screenshots (headless Chromium)

The only group measured on both machines.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| one-page invoice HTML with CJK and emoji text to PDF | M1 Max | 68 ms | 0.14 | 207 |  | 41 KB |
| one-page invoice HTML with CJK and emoji text to PDF | r640 x86 | 152 ms | 0.36 | 225 |  |  |
| the same invoice, viewport 900 x 700 to PNG | M1 Max | 126 ms | 0.2 | 206 |  | 77 KB |
| the same invoice, viewport 900 x 700 to PNG | r640 x86 | 264 ms | 0.45 | 205 |  |  |
| 50-page HTML document (text and tables) to PDF | M1 Max | 207 ms | 0.32 | 262 |  | 108 KB (50 pages) |
| 50-page HTML document (text and tables) to PDF | r640 x86 | 503 ms | 0.85 | 270 |  |  |
| a minimal public demo web page (the IANA reserved demo domain) to PDF | M1 Max | 163 ms | 0.19 | 201 |  | 90 KB |
| a minimal public demo web page (the IANA reserved demo domain) to PDF | r640 x86 | 213 ms | 0.4 | 217 |  |  |
| a long public encyclopedia article (24 printed pages with images) to PDF | M1 Max | 597 ms | 1.05 | 305 |  | 480 KB |
| a long public encyclopedia article (24 printed pages with images) to PDF | r640 x86 | 1,269 ms | 2.79 | 334 |  |  |
| the same article, full page, 1280 px wide, cut at 16,384 px to PNG | M1 Max | 1,626 ms | 2.3 | 537 |  | 3.7 MB |
| the same article, full page, 1280 px wide, cut at 16,384 px to PNG | r640 x86 | 19.1 s | 24.9 | 583 |  |  |

## Charts (Apache ECharts in headless Chromium)

M1 only.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| typical bar chart, 1200 x 800 to PNG | M1 Max | 518 ms | 0.62 | 228 |  | 17,892 B |
| typical histogram to PNG | M1 Max | 445 ms | 0.53 | 228 |  | 10,247 B |
| typical box plot to PNG | M1 Max | 359 ms | 0.46 | 224 |  | 8,057 B |
| typical scatter plot to PNG | M1 Max | 325 ms | 0.45 | 217 |  | 28,389 B |
| typical dot plot to PNG | M1 Max | 309 ms | 0.39 | 219 |  | 9,557 B |
| typical stem-and-leaf plot to PNG | M1 Max | 99 ms | 0.14 | 172 |  | 18,721 B |
| typical radar chart to PNG | M1 Max | 303 ms | 0.4 | 225 |  | 51,044 B |
| largest allowed bar chart: 2000 x 2000 at 2x = 16 MP, 200 categories x 10 series, values shown to PNG | M1 Max | 887 ms | 1.29 | 484 |  | 1,158,247 B |

## Image conversion, resizing and compression (sharp)

M1 only. Each case ran in a fresh container with 1 CPU.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| 1024 x 1024 PNG logo with transparency, WebP quality 80 to WebP | M1 Max | 220 ms | 0.25 | 62 | 37 KB | 13 KB |
| the same logo, JPEG quality 80 to JPEG | M1 Max | 110 ms | 0.15 | 39 | 37 KB | 25 KB |
| 1600 x 1200 flat illustration PNG, lossless WebP to WebP | M1 Max | 230 ms | 0.25 | 95 | 90 KB | 27 KB |
| 2000 x 1500 JPEG photo-like image, WebP quality 80 to WebP | M1 Max | 580 ms | 0.61 | 60 | 775 KB | 529 KB |
| the same JPEG to PNG to PNG | M1 Max | 290 ms | 0.32 | 43 | 775 KB | 7.5 MB |
| 1600 x 1200 WebP to PNG | M1 Max | 150 ms | 0.17 | 52 | 32 KB | 247 KB |
| 4000 x 3000 (12 MP) JPEG, WebP quality 80 to WebP | M1 Max | 1,780 ms | 1.75 | 118 | 2.5 MB | 1.1 MB |
| 12 MP WebP to PNG | M1 Max | 860 ms | 0.9 | 149 | 1.4 MB | 24.9 MB |
| 12 MP JPEG to PNG | M1 Max | 870 ms | 0.88 | 74 | 2.5 MB | 28.5 MB |
| 4096 x 4096 (16 MP) random-noise JPEG, WebP quality 80 (worst-case input) to WebP | M1 Max | 3,450 ms | 3.43 | 307 | 4.3 MB | 8.4 MB |
| 12 MP JPEG (GIF is the most expensive output format) to GIF | M1 Max | 3,800 ms | 3.83 | 182 | 2518 KB | 7320 KB |
| 1024 x 1024 PNG logo to ICO with sizes 16 to 256 to ICO | M1 Max | 240 ms | 0.25 | 44 | 37 KB | 20 KB |
| 12 MP TIFF (JPEG-compressed) to JPEG | M1 Max | 480 ms | 0.5 | 116 | 2273 KB | 1994 KB |
| 1024 x 1024 PNG logo, longest side 256 px to PNG | M1 Max | 110 ms | 0.15 | 39 | 37 KB | 10 KB |
| 2000 x 1500 JPEG, longest side 800 px to JPEG | M1 Max | 130 ms | 0.16 | 43 | 775 KB | 37 KB |
| 12 MP JPEG, longest side 1600 px to JPEG | M1 Max | 220 ms | 0.25 | 64 | 2.5 MB | 225 KB |
| 2000 x 1500 AVIF, longest side 800 px to AVIF input, image output | M1 Max | 310 ms | 0.33 | 88 | 196 KB | 17 KB |
| 12 MP AVIF, longest side 1600 px to AVIF input, image output | M1 Max | 840 ms | 0.87 | 252 | 739 KB | 166 KB |
| 2000 x 1500 JPEG, quality 75 (mozjpeg) to JPEG | M1 Max | 510 ms | 0.53 | 63 | 774 KB | 249 KB |
| 12 MP JPEG, quality 75 to JPEG | M1 Max | 1,640 ms | 1.63 | 154 | 2518 KB | 1054 KB |
| 12 MP JPEG searched down to a 500 KB target (7 encodes) to JPEG | M1 Max | 5,260 ms | 5.24 | 369 | 2518 KB | 498 KB |
| 1024 PNG logo with alpha, palette quantisation quality 75 to PNG | M1 Max | 220 ms | 0.24 | 40 | 37 KB | 8 KB |
| 1600 x 1200 flat illustration PNG, palette quantisation quality 75 to PNG | M1 Max | 200 ms | 0.23 | 49 | 90 KB | 15 KB |

## Raster to SVG (VTracer)

M1 only. Wall time only; the CPU column is empty because the BENCH table does not report it.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| 1024 x 1024 transparent PNG logo, 3 colours to SVG | M1 Max | 230 ms |  | 43 | 37 KB | 16 KB |
| 512 x 512 single-colour PNG icon to SVG | M1 Max | 140 ms |  | 41 | 16 KB | 9 KB |
| 1600 x 1200 flat illustration PNG (about 15 flat colours) to SVG | M1 Max | 540 ms |  | 77 | 90 KB | 58 KB |
| 2000 x 1500 generated photo-like JPEG, default settings to SVG | M1 Max | 20.0 s |  | 453 | 775 KB | 13544 KB |
| the same photo with the Photo preset (color_precision 5, filter_speckle 16, layer_difference 32) to SVG | M1 Max | 11.1 s |  | 243 | 775 KB | 1905 KB |

## PDF merge, split, rotate, delete and PDF to or from images

M1 only. qpdf, poppler and pdf-lib.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| 10 PDFs of 20 pages each (200 pages) to PDF | M1 Max | 1,570 ms | 1.56 | 28 | 3.0 MB | 0.90 MB |
| 200 + 200 + 5 x 20 pages (500 pages, the signed-in page limit) to PDF | M1 Max | 3,540 ms | 3.51 | 76 | 7.0 MB | 1.80 MB |
| 3 scanned PDFs of 30 full-page JPEG pages (90 pages) to PDF | M1 Max | 17.6 s | 17.45 | 123 | 53.4 MB | 53.39 MB |
| 200 pages into 200 single-page files (ZIP) to ZIP of PDFs | M1 Max | 1,450 ms | 1.45 | 69 | 2.8 MB | 5.71 MB |
| 500 pages into 500 single-page files (ZIP) to ZIP of PDFs | M1 Max | 3,560 ms | 3.56 | 153 | 7.0 MB | 14.24 MB |
| all 200 pages rotated 90 degrees to PDF | M1 Max | 1,790 ms | 1.79 | 73 | 2.8 MB | 2.88 MB |
| all 500 pages rotated 180 degrees to PDF | M1 Max | 4,340 ms | 4.33 | 161 | 7.0 MB | 7.21 MB |
| delete 1 page of 500 to PDF | M1 Max | 3,480 ms | 3.45 | 154 | 7.0 MB | 1.65 MB |
| 1 text page at 150 DPI (2.17 MP) to JPEG | M1 Max | 250 ms | 0.25 | 31 | 0.3 MB | 0.18 MB |
| 100 pages at 150 DPI (217.5 MP in total) to JPEG (ZIP) | M1 Max | 4,840 ms | 4.82 | 70 | 2.8 MB | 23.50 MB |
| 100 pages at 300 DPI (869.6 MP in total) to JPEG (ZIP) | M1 Max | 12.4 s | 12.39 | 141 | 2.8 MB | 61.14 MB |
| 10 pages at 300 DPI (87 MP in total) to PNG (ZIP) | M1 Max | 5,320 ms | 5.28 | 53 | 0.3 MB | 2.49 MB |
| one 12 MP phone photo, fit to page to PDF | M1 Max | 360 ms | 0.35 | 63 | 2.6 MB | 2.59 MB |
| 20 JPEGs of 3 MP, A4 pages (the anonymous limit) to PDF | M1 Max | 390 ms | 0.39 | 115 | 11.5 MB | 11.47 MB |
| one 16.7 MP photo-like PNG with transparency (worst case for one PNG) to PDF | M1 Max | 6,220 ms | 6.22 | 289 | 11.4 MB | 9.98 MB |

## Image to text (Tesseract OCR)

M1 only. CPU seconds and memory; per-case wall time was not recorded.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| one dense A4 page of 326 words at 300 dpi (2059 x 2752) to text | M1 Max |  | 2.55 | 99 |  |  |
| the same page at 150 dpi (1287 x 1720) to text | M1 Max |  | 2.05 | 59 |  |  |
| one 3000 x 2250 phone-style photo of text to text | M1 Max |  | 2.1 | 113 |  |  |
| two-page image PDF rendered at 300 dpi to text | M1 Max |  | 2.64 | 188 |  |  |

## E-book to PDF (Calibre)

M1 only. Values from the quiet host; a busy host made them up to 2 to 3 times larger.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| small EPUB, 10 KB of text to PDF | M1 Max | 2,700 ms | 0.8 | 143 |  | 0.24 MB |
| typical novel EPUB: 0.46 MB of text, 142 pages to PDF | M1 Max | 18.8 s | 4.6 | 652 |  | 0.76 MB |
| the same novel as MOBI, 144 pages to PDF | M1 Max | 5,600 ms | 4.0 | 625 |  | 1.04 MB |
| the same novel as AZW3, 143 pages to PDF | M1 Max | 19.7 s | 4.5 | 652 |  | 0.78 MB |
| EPUB with 1.008 MB of text (at the 1 MB text limit), 283 pages to PDF | M1 Max | 16.1 s | 8.1 | 1227 |  |  |

## Word, Excel and PowerPoint to PDF (LibreOffice)

M1 only.

| Case | Machine | Wall | CPU s | Peak MB | Input | Output |
|---|---|---|---|---|---|---|
| Word document, 10 sections with pictures, tables and CJK text (480 KB), 20 pages to PDF | M1 Max | 640 ms | 0.57 | 202 |  | 259 KB |
| Excel workbook, 3 sheets x 500 rows x 8 columns with formulas (88 KB), 66 pages to PDF | M1 Max | 1,010 ms | 0.92 | 170 |  | 150 KB |
| PowerPoint, 20 slides with one picture each (11 MB) to PDF | M1 Max | 1,920 ms | 1.83 | 217 |  | 4.6 MB |
| Word document with 100 sections and 200 pages (494 KB) to PDF | M1 Max | 2,590 ms | 2.39 | 224 |  | 555 KB |
| PowerPoint, 50 slides of 1600 x 900 noise pictures (61 MB) to PDF | M1 Max | 8,900 ms | 8.5 | 476 |  | 25.9 MB |
| Excel workbook, 10 sheets x 5000 rows x 20 columns (10.8 MB, 1 million cells), output capped at 500 pages to PDF | M1 Max | 10.6 s | 10.3 | 243 |  | 2.3 MB |

## Limits of these numbers

- Synthetic inputs: logos, illustrations, generated photo-like images, generated documents. Real files can be slower, especially photos traced to SVG.
- One laptop and one shared server. They are not a comparison with other products and not a promise about response time.

## Cite

AIIPWorld, "Conversion benchmarks", https://aiipworld.com/data/conversion-benchmarks/, CC BY 4.0, measured 2026-10-09 to 2026-10-15.

Page: https://aiipworld.com/data/conversion-benchmarks/
