bench: @choojs/html vs nanohtml v1 vs µhtml v5, happy-dom + real Chromium

npm run bench (happy-dom, all three engines) and npm run bench:browser
(Playwright Chromium, the two ESM engines). Honest numbers recorded in
docs/v8.md: we create ~12% faster than µhtml in real Chromium (the
parse-once/clone design), µhtml updates in place ~5x faster than
fresh-tree + nanomorph (choo's architectural cost, mitigated by component
caching), and server strings are on par with nanohtml v1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NgfSjHE11oFpoSnLVKLXd
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-08 17:59:53 +02:00
co-authored by Claude Fable 5
parent 63b56144a5
commit c9f5ba2fda
4 changed files with 214 additions and 5 deletions
+5 -2
View File
@@ -13,12 +13,15 @@
"scripts": {
"test": "node --test packages/core/test/ packages/html/test/ packages/component/test/",
"test:e2e": "node --test test/e2e/",
"bench": "node bench/render.js"
"bench": "node bench/render.js",
"bench:browser": "node bench/real-browser.js"
},
"repository": "choojs/choo",
"license": "MIT",
"devDependencies": {
"happy-dom": "^20.14.0",
"playwright": "^1.63.0"
"nanohtml": "^1.10.0",
"playwright": "^1.63.0",
"uhtml": "^5.0.9"
}
}