Skip to content

Benchmark results

Recorded 2026-09-21. Historical measurement. Not a measurement of the latest release. Run status: completed.

Which implementation takes less time? Compare every workload with FreeType, the baseline. Lower time is better.

fontdone4 faster · 7 slowervs FreeType · 0 equal · 0 not comparable

Observed median comparisons, not an overall score. Timing-only rows do not establish equal output; small differences may be noise.

Shorter bars = less time within a row. Click a column heading to sort. Scroll the table horizontally on small screens.

Median time per workload; speed factors are relative to the baseline in the same row.
BaselineMedian · vs baselineLowest medianAmong comparable implementations
Font setupLoad a fontDejaVu Sans · size 2017.4 µsBaselineFreeType. Timing only · equal output not established.10.4 µs1.67× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Font metadataRead the font nameDejaVu Sans · size 2027.5 nsBaselineFreeType. Timing only · equal output not established.12 ns2.29× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Font metadataRead font metricsDejaVu Sans · size 2021 nsBaselineFreeType. Timing only · equal output not established.5 ns4.2× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Text measurementMeasure text width: “AV”DejaVu Sans · size 202.2 µsBaselineFreeType. Timing only · equal output not established.6.44 µs2.92× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Text measurementMeasure text bounds: “Hello”DejaVu Sans · size 205.34 µsBaselineFreeType. Timing only · equal output not established.2.17 µs2.47× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Glyph renderingRender grayscale glyph: “A”DejaVu Sans · size 201.96 µsBaselineFreeType. Timing only · equal output not established.3.98 µs2.02× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender “A” with forced autohintingDejaVu Sans · size 201.48 µsBaselineFreeType. Timing only · equal output not established.98.8 µs66.7× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Text measurementRead glyph metrics: “A”DejaVu Sans · size 202.22 µsBaselineFreeType. Timing only · equal output not established.3.98 µs1.79× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender monochrome glyph: “A”DejaVu Sans · size 201.87 µsBaselineFreeType. Timing only · equal output not established.6.04 µs3.24× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender LCD glyph: “A”DejaVu Sans · size 202.03 µsBaselineFreeType. Timing only · equal output not established.9.5 µs4.69× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender a CJK glyphGenerated CJK font · size 201.02 µsBaselineFreeType. Timing only · equal output not established.3.44 µs3.39× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established

11 recorded workloads · 2026-09-21 · macOS-14.8.9-arm64-arm-64bit

Font loading, metadata, text measurement and glyph rendering. Complete multi-step text-layout pipelines are not measured in this snapshot.

Measurement details and hardware · Download results · Contributor benchmark guide