sqzass
한국어

Benchmark

Five generators, one machine, one corpus — and the definitions published

minimal — a heading and a paragraph

sqzass18 ms Hugo93 ms Zola141 ms Jekyll442 ms Astro4,672 ms
sqzass25 ms Hugo112 ms Zola172 ms Jekyll752 ms Astro6,699 ms

heavy, repeated code — five identical 20-line Rust blocks per page

sqzass187 ms Hugo3,559 ms Zola5,084 ms Jekyll10,850 ms Astro22,090 ms

heavy, unique code — five distinct 20-line Rust blocks per page

sqzass1,298 ms Hugo5,912 ms Zola6,789 ms Jekyll11,456 ms Astro23,958 ms

Every number

Wall clock, median of three cold runs, and peak RSS.

minimal blog heavy · repeat heavy · unique
sqzass 0.1.0 18 ms · 15 MB 25 ms · 24 MB 187 ms · 229 MB 1,298 ms · 439 MB
Hugo 0.164.0 93 ms · 123 MB 112 ms · 140 MB 3,559 ms · 411 MB 5,912 ms · 421 MB
Zola 0.22.1 141 ms · 136 MB 172 ms · 142 MB 5,084 ms · 269 MB 6,789 ms · 279 MB
Jekyll 4.4.1 442 ms · 56 MB 752 ms · 62 MB 10,850 ms · 174 MB 11,456 ms · 182 MB
Astro 5.18.2 4,672 ms · 555 MB 6,699 ms · 604 MB 22,090 ms · 2,578 MB 23,958 ms · 2,607 MB

Why heavy comes twice

Because code repetition decides rankings, and most benchmarks do not say what theirs is. sqzass highlights each distinct block once per build, so a corpus whose generator repeats the same block is a different measurement from one where every block is unique — the gap between 187 ms and 1,298 ms is that variable. A single "heavy" number that does not state its repetition has hidden the thing that produced it.

Method

  • Cold. Before every run the output directory and each tool's caches are removed — .jekyll-cache, Astro's cacheDir and dist, Hugo's resources and build lock. Wall clock and peak RSS come from GNU time.
  • Corpus. 1,000 pages plus a section index. The markdown bodies are byte-identical across tools; only the front matter syntax differs. A paragraph is one fixed 76-character sentence repeated four times.
  • Highlighting is on everywhere, at build time, as each tool ships it: syntect + Oniguruma (sqzass), Chroma (Hugo), Giallo (Zola), Rouge (Jekyll), Shiki (Astro). Markup granularity differs — spans on the same heavy page: sqzass 3,205 · Jekyll 1,800 · Zola and Astro 1,700 · Hugo 600. sqzass emits the most detailed markup of the five and the numbers above.
  • Templates. Each tool gets the same minimal no-theme layout: an HTML shell around the rendered content.
  • Astro's time includes Node startup (~1 s). It is also doing more than markdown-to-HTML — it is a component framework. That is the honest caveat; the corpus is plain markdown, which is the workload this page is about.