Skip to content

Conversion benchmarks: time, CPU and memory

What it costs a server to convert a file: 78 measured cases, the method, and the data as a CSV you may reuse with credit.

In one sentence

An open dataset of 78 measured conversions (PDF, images, OCR, e-books, Office files) with wall time, CPU seconds and peak memory, measured on an Apple M1 Max laptop and an x86 Xeon server.

Key facts

  • 78 cases from 8 engines, measured between 2026-10-09 and 2026-10-15; one CSV row per case.
  • Only the headless Chromium cases (6 rows) were also measured on the x86 server. There a CPU second per job was 2.3 to 2.7 times the M1 figure for ordinary documents, and 10.8 times for the tallest full-page screenshot.
  • Inputs were generated by our own scripts, apart from two public web pages used for the URL cases. No customer files were used.
  • The data is licensed CC BY 4.0: copy, share and adapt it, with credit to AIIPWorld and a link to this page.

Sources

Last reviewed:

Download the data

conversion-benchmarks.csv (78 rows, UTF-8, comma separated, one header row). License: Creative Commons Attribution 4.0. Cite it as:

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

How it was measured

  • M1 Max. An Apple MacBook Pro (M1 Max) running Docker Desktop with arm64 Linux containers. Images, PDF and OCR cases ran one at a time in a fresh container limited to 1 CPU, with a read-only root file system and no privileges; the figure is the median of 3 runs. E-books ran with 2 CPUs and 2 GB, Office files with 1 CPU and 1.5 GB. The Chromium cases ran in a worker limited to 4 CPUs and 4 GB, one job at a time after two warm-up runs.
  • r640 x86. A Dell R640 server with two Intel Xeon Gold 6138 processors (2.0 GHz) running the same Chromium worker image, one job at a time. About 80 production containers were running at the time, so these figures include interference and are noisy. Only the Chromium cases were measured here.
  • What the columns count. Wall time runs from the worker taking the job to the result being written; queueing, upload and download are not included. CPU seconds come from the container’s cgroup counters and cover every process of the job, including the browser or converter. Memory is a peak, and the memory_metric column names the counter, because browser, container and process-tree peaks are not the same thing and should not be compared across groups.
  • Inputs. Logos, illustrations and photo-like images were drawn or synthesised by our scripts; documents, spreadsheets, slide decks and e-books were generated with python-docx, openpyxl, python-pptx and our own text generators; scans are noise-filled JPEG pages. The two URL cases use public web pages, so their times include the internet.

M1 against the x86 server

The six Chromium cases below were measured on both machines. The x86 server needed more CPU for every one of them.

CaseM1 wallx86 wallM1 CPU sx86 CPU sCPU ratio
one-page invoice HTML with CJK and emoji text68 ms152 ms0.140.362.6x
the same invoice, viewport 900 x 700126 ms264 ms0.20.452.3x
50-page HTML document (text and tables)207 ms503 ms0.320.852.7x
a minimal public demo web page (the IANA reserved demo domain) (uses the internet)163 ms213 ms0.190.42.1x
a long public encyclopedia article (24 printed pages with images) (uses the internet)597 ms1,269 ms1.052.792.7x
the same article, full page, 1280 px wide, cut at 16,384 px (uses the internet)1,626 ms19.1 s2.324.910.8x

Results by engine

Times of 10 seconds or more are shown in seconds. The full precision is in the CSV.

HTML, web pages and screenshots (headless Chromium)

The only group measured on both machines.

Charts (Apache ECharts in headless Chromium)

M1 only.

CaseMachineWallCPU sPeak MBInputOutput
typical bar chart, 1200 x 800 to PNGM1 Max518 ms0.6222817,892 B
typical histogram to PNGM1 Max445 ms0.5322810,247 B
typical box plot to PNGM1 Max359 ms0.462248,057 B
typical scatter plot to PNGM1 Max325 ms0.4521728,389 B
typical dot plot to PNGM1 Max309 ms0.392199,557 B
typical stem-and-leaf plot to PNGM1 Max99 ms0.1417218,721 B
typical radar chart to PNGM1 Max303 ms0.422551,044 B
largest allowed bar chart: 2000 x 2000 at 2x = 16 MP, 200 categories x 10 series, values shown to PNGM1 Max887 ms1.294841,158,247 B

Image conversion, resizing and compression (sharp)

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

CaseMachineWallCPU sPeak MBInputOutput
1024 x 1024 PNG logo with transparency, WebP quality 80 to WebPM1 Max220 ms0.256237 KB13 KB
the same logo, JPEG quality 80 to JPEGM1 Max110 ms0.153937 KB25 KB
1600 x 1200 flat illustration PNG, lossless WebP to WebPM1 Max230 ms0.259590 KB27 KB
2000 x 1500 JPEG photo-like image, WebP quality 80 to WebPM1 Max580 ms0.6160775 KB529 KB
the same JPEG to PNG to PNGM1 Max290 ms0.3243775 KB7.5 MB
1600 x 1200 WebP to PNGM1 Max150 ms0.175232 KB247 KB
4000 x 3000 (12 MP) JPEG, WebP quality 80 to WebPM1 Max1,780 ms1.751182.5 MB1.1 MB
12 MP WebP to PNGM1 Max860 ms0.91491.4 MB24.9 MB
12 MP JPEG to PNGM1 Max870 ms0.88742.5 MB28.5 MB
4096 x 4096 (16 MP) random-noise JPEG, WebP quality 80 (worst-case input) to WebPM1 Max3,450 ms3.433074.3 MB8.4 MB
12 MP JPEG (GIF is the most expensive output format) to GIFM1 Max3,800 ms3.831822518 KB7320 KB
1024 x 1024 PNG logo to ICO with sizes 16 to 256 to ICOM1 Max240 ms0.254437 KB20 KB
12 MP TIFF (JPEG-compressed) to JPEGM1 Max480 ms0.51162273 KB1994 KB
1024 x 1024 PNG logo, longest side 256 px to PNGM1 Max110 ms0.153937 KB10 KB
2000 x 1500 JPEG, longest side 800 px to JPEGM1 Max130 ms0.1643775 KB37 KB
12 MP JPEG, longest side 1600 px to JPEGM1 Max220 ms0.25642.5 MB225 KB
2000 x 1500 AVIF, longest side 800 px to AVIF input, image outputM1 Max310 ms0.3388196 KB17 KB
12 MP AVIF, longest side 1600 px to AVIF input, image outputM1 Max840 ms0.87252739 KB166 KB
2000 x 1500 JPEG, quality 75 (mozjpeg) to JPEGM1 Max510 ms0.5363774 KB249 KB
12 MP JPEG, quality 75 to JPEGM1 Max1,640 ms1.631542518 KB1054 KB
12 MP JPEG searched down to a 500 KB target (7 encodes) to JPEGM1 Max5,260 ms5.243692518 KB498 KB
1024 PNG logo with alpha, palette quantisation quality 75 to PNGM1 Max220 ms0.244037 KB8 KB
1600 x 1200 flat illustration PNG, palette quantisation quality 75 to PNGM1 Max200 ms0.234990 KB15 KB

Raster to SVG (VTracer)

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

CaseMachineWallCPU sPeak MBInputOutput
1024 x 1024 transparent PNG logo, 3 colours to SVGM1 Max230 ms4337 KB16 KB
512 x 512 single-colour PNG icon to SVGM1 Max140 ms4116 KB9 KB
1600 x 1200 flat illustration PNG (about 15 flat colours) to SVGM1 Max540 ms7790 KB58 KB
2000 x 1500 generated photo-like JPEG, default settings to SVGM1 Max20.0 s453775 KB13544 KB
the same photo with the Photo preset (color_precision 5, filter_speckle 16, layer_difference 32) to SVGM1 Max11.1 s243775 KB1905 KB

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

M1 only. qpdf, poppler and pdf-lib.

CaseMachineWallCPU sPeak MBInputOutput
10 PDFs of 20 pages each (200 pages) to PDFM1 Max1,570 ms1.56283.0 MB0.90 MB
200 + 200 + 5 x 20 pages (500 pages, the signed-in page limit) to PDFM1 Max3,540 ms3.51767.0 MB1.80 MB
3 scanned PDFs of 30 full-page JPEG pages (90 pages) to PDFM1 Max17.6 s17.4512353.4 MB53.39 MB
200 pages into 200 single-page files (ZIP) to ZIP of PDFsM1 Max1,450 ms1.45692.8 MB5.71 MB
500 pages into 500 single-page files (ZIP) to ZIP of PDFsM1 Max3,560 ms3.561537.0 MB14.24 MB
all 200 pages rotated 90 degrees to PDFM1 Max1,790 ms1.79732.8 MB2.88 MB
all 500 pages rotated 180 degrees to PDFM1 Max4,340 ms4.331617.0 MB7.21 MB
delete 1 page of 500 to PDFM1 Max3,480 ms3.451547.0 MB1.65 MB
1 text page at 150 DPI (2.17 MP) to JPEGM1 Max250 ms0.25310.3 MB0.18 MB
100 pages at 150 DPI (217.5 MP in total) to JPEG (ZIP)M1 Max4,840 ms4.82702.8 MB23.50 MB
100 pages at 300 DPI (869.6 MP in total) to JPEG (ZIP)M1 Max12.4 s12.391412.8 MB61.14 MB
10 pages at 300 DPI (87 MP in total) to PNG (ZIP)M1 Max5,320 ms5.28530.3 MB2.49 MB
one 12 MP phone photo, fit to page to PDFM1 Max360 ms0.35632.6 MB2.59 MB
20 JPEGs of 3 MP, A4 pages (the anonymous limit) to PDFM1 Max390 ms0.3911511.5 MB11.47 MB
one 16.7 MP photo-like PNG with transparency (worst case for one PNG) to PDFM1 Max6,220 ms6.2228911.4 MB9.98 MB

Image to text (Tesseract OCR)

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

CaseMachineWallCPU sPeak MBInputOutput
one dense A4 page of 326 words at 300 dpi (2059 x 2752) to textM1 Max2.5599
the same page at 150 dpi (1287 x 1720) to textM1 Max2.0559
one 3000 x 2250 phone-style photo of text to textM1 Max2.1113
two-page image PDF rendered at 300 dpi to textM1 Max2.64188

E-book to PDF (Calibre)

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

CaseMachineWallCPU sPeak MBInputOutput
small EPUB, 10 KB of text to PDFM1 Max2,700 ms0.81430.24 MB
typical novel EPUB: 0.46 MB of text, 142 pages to PDFM1 Max18.8 s4.66520.76 MB
the same novel as MOBI, 144 pages to PDFM1 Max5,600 ms4.06251.04 MB
the same novel as AZW3, 143 pages to PDFM1 Max19.7 s4.56520.78 MB
EPUB with 1.008 MB of text (at the 1 MB text limit), 283 pages to PDFM1 Max16.1 s8.11227

Word, Excel and PowerPoint to PDF (LibreOffice)

M1 only.

CaseMachineWallCPU sPeak MBInputOutput
Word document, 10 sections with pictures, tables and CJK text (480 KB), 20 pages to PDFM1 Max640 ms0.57202259 KB
Excel workbook, 3 sheets x 500 rows x 8 columns with formulas (88 KB), 66 pages to PDFM1 Max1,010 ms0.92170150 KB
PowerPoint, 20 slides with one picture each (11 MB) to PDFM1 Max1,920 ms1.832174.6 MB
Word document with 100 sections and 200 pages (494 KB) to PDFM1 Max2,590 ms2.39224555 KB
PowerPoint, 50 slides of 1600 x 900 noise pictures (61 MB) to PDFM1 Max8,900 ms8.547625.9 MB
Excel workbook, 10 sheets x 5000 rows x 20 columns (10.8 MB, 1 million cells), output capped at 500 pages to PDFM1 Max10.6 s10.32432.3 MB

What these numbers do not tell you

  • They come from synthetic inputs. Real photos traced to SVG, real scanned books and real Office files can be slower; the VTracer rows show how large the gap can be between a logo and a photo-like image.
  • They come from one laptop and one shared server. They are not a comparison with other products, and they are not a promise about the response time you will see on aiipworld.com, which also depends on queueing and your network.
  • The two machines are different architectures and loads. Do not subtract M1 from x86 figures outside the six paired cases.
  • Memory figures use different counters in different groups (see memory_metric).

Columns in the CSV

id
Unique case id; the suffix is the machine (-m1 or -r640).
engine / tool_page / operation
The software that did the work, the tool page on this site that uses it, and the API operation name.
input / output_format
What was converted, and to what.
platform / statistic / runs
The machine, how the figure was taken (median or p50), and how many runs it stands for.
wall_ms / p95_ms
Time of the job in milliseconds: from the worker taking the job to the result written. Queueing, upload and download are not included. p95 only where the source reports it.
cpu_seconds
CPU time used, from the container's cgroup counters (all processes of the job).
peak_memory_mb / memory_metric
Peak memory and which counter it is (cgroup memory.peak, browser PSS, or RSS).
input_size / output_size
File sizes as reported by the source table, with their units.
uses_public_internet
yes when the case fetches a public web page, so network time is in the figure.
measured_on / source / notes
Date, the engine benchmark file and section the numbers were copied from, and caveats for that case.

These measurements back the limits and timeouts described on the API documentation and the tools in the tools index. Who runs AIIPWorld and where its numbers come from is on the About page.