Skip to content

Measurements

codingncaffeine edited this page Sep 3, 2026 · 96 revisions

Measurements

Public yardsticks, scored by Sashfold itself, enforced in CI.

Yardstick Score
html5lib tokenizer 7032 / 7032 (100%)
html5lib tree construction 1784 / 1784 (100%)
WPT URL parsing (urltestdata) 893 / 893 (100%)
WPT CSS reference tests 7238 / 13477 (53.7%)
Acid1 Renders as its reference, font rasterization aside
The Sashfold 100 Rendered nightly, published at sashfold.com/sashfold100

The WPT CSS reference tests

The Web Platform Tests' CSS reference tests are the tests that need no scripting: a test page and a reference page must render to the same pixels. Sashfold scores the CSS2 suite and fifteen css-* directories (css-backgrounds, css-box, css-cascade, css-color, css-display, css-flexbox, css-fonts, css-grid, css-overflow, css-position, css-syntax, css-text, css-values, css-variables, selectors) — every test and every reference rendered headless by Sashfold at the suite's 800×600 viewport, compared by the suite's own rules: pixel-identical unless the test declares a fuzziness allowance, references chained the way wptrunner chains them.

  • The per-directory table is at sashfold.com/wpt.html, regenerated with every change.
  • tests/wpt/passing.txt names every passing test; CI fails when a listed test stops passing.
  • The checkout is fetched at a pinned revision by tools/wpt-fetch.sh; nothing of it is vendored.
  • Tests that wait on scripts count as failures, as they do on wpt.fyi. What the engine cannot do, it does not score.

Acid1

The CSS1 box, float and clear test renders at its reference's width as the W3C's reference rendering shows it — the same boxes in the same places — with the differences a bitmap font of 1998 leaves against grayscale anti-aliasing today. The live shell script opens it and asserts its texts line by line.

Timings

sashfold --bench <page> times parse, stylesheets, style, layout and paint over several runs. On this project's reference machine, Wikipedia's "Web browser" article (415 KB, 14 stylesheets, some 900 rules, at 800 px) parses in about 8 ms, resolves its style in about 13 ms, lays out in a few milliseconds and paints its viewport in about one; the whole page, pictures included, arrives in about a second over 3 connections opened and 14 reused.

Clone this wiki locally