Skip to content

Benchmark results

Recorded 2026-10-05. 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.

fontdone3 faster · 8 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 2018.1 µsBaselineFreeType. Timing only · equal output not established.32.3 µs1.78× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Font metadataRead the font nameDejaVu Sans · size 2028 nsBaselineFreeType. Timing only · equal output not established.10.5 ns2.67× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Font metadataRead font metricsDejaVu Sans · size 2019 nsBaselineFreeType. Timing only · equal output not established.5 ns3.8× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Text measurementMeasure text width: “AV”DejaVu Sans · size 202.87 µsBaselineFreeType. Timing only · equal output not established.9.78 µs3.4× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Text measurementMeasure text bounds: “Hello”DejaVu Sans · size 208.17 µsBaselineFreeType. Timing only · equal output not established.3.42 µs2.39× fasterfontdone. Timing only · equal output not established.fontdoneTiming only · equal output not established
Glyph renderingRender grayscale glyph: “A”DejaVu Sans · size 202.31 µsBaselineFreeType. Timing only · equal output not established.6.05 µs2.62× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender “A” with forced autohintingDejaVu Sans · size 201.84 µsBaselineFreeType. Timing only · equal output not established.137 µs74.6× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Text measurementRead glyph metrics: “A”DejaVu Sans · size 202.85 µsBaselineFreeType. Timing only · equal output not established.5.02 µs1.76× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender monochrome glyph: “A”DejaVu Sans · size 202.02 µsBaselineFreeType. Timing only · equal output not established.8.09 µs4.01× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender LCD glyph: “A”DejaVu Sans · size 202.15 µsBaselineFreeType. Timing only · equal output not established.10.2 µs4.74× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established
Glyph renderingRender a CJK glyphGenerated CJK font · size 201.16 µsBaselineFreeType. Timing only · equal output not established.2.94 µs2.53× slowerfontdone. Timing only · equal output not established.FreeTypeTiming only · equal output not established

11 recorded workloads · 2026-10-05 · 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