{"schemaVersion":1,"status":"Historical, limited, mixed-refresh results","provenance":{"publicSource":"https://github.com/microsoft/webui-benchmarks","sourceAccess":"The advertised source returned HTTP 404 without authentication during the website audit. Its availability and full contents could not be verified.","serverMeasuredRounds":1,"browserIsolatedRuns":10,"selectiveRefresh":{"refreshedAt":"2026-09-04T03:28:11.463Z","caseIds":["webui-bun-serve","webui-deno-serve","webui-node-http"]},"missing":["An anonymously inspectable source revision and raw run artifacts","A complete per-case framework and runtime version trail","Original measurement dates for the other 11 cases","A complete hardware and operating-system record","An unambiguous browser response-mode record"],"limitations":["One measured server round does not estimate run-to-run variability. Zero MAD is not evidence of confidence or a statistically established winner.","Browser metrics describe 10 isolated runs. Reported MAD and p95 are descriptive, not confidence bounds; the raw samples are not available here.","Only the three listed WebUI host cases were refreshed on 2026-09-04. Other cases retain earlier official results, not a uniform rerun.","WebUI 0.0.28 appears in capability metadata only. It does not establish the version used for every measurement.","Lower memory use is not an overall performance score. JavaScript heap, renderer private bytes, LCP, and server throughput measure different things.","Server throughput uses 64 connections. Saturation warnings in individual notes identify still-rising 128-connection probes; these are not demonstrated maximum throughputs.","The progressive category retains each case's existing behavior, including buffered routes. The dedicated WebUI resumable async data-boundary workload was not measured.","This sanitized extract preserves the five displayed metrics and their notes. It omits bulk server telemetry and unsupported winner summaries; it is not a complete reproducibility package."]},"metrics":[{"id":"jsHeapUsedBytes","label":"JavaScript heap","unit":"MiB","rawUnit":"bytes","direction":"lower","directionLabel":"Lower uses less JS memory","description":"Post-readiness JavaScript heap after explicit Chromium garbage collection. This is not total browser memory.","samples":10,"methodology":"Chromium 151.0.7922.34 · 1,440×900 viewport · 10 randomized cold-cache navigations · fresh foreground process/context/page per sample · native occlusion throttling disabled · no CPU or network throttling"},{"id":"rendererPrivateBytes","label":"Renderer private bytes","unit":"MiB","rawUnit":"bytes","direction":"lower","directionLabel":"Lower uses less renderer memory","description":"Private bytes attributed to the isolated Chromium renderer after readiness. This is separate from JavaScript heap.","samples":10,"methodology":"Chromium 151.0.7922.34 · 1,440×900 viewport · 10 randomized cold-cache navigations · fresh foreground process/context/page per sample · native occlusion throttling disabled · no CPU or network throttling"},{"id":"largestContentfulPaintMs","label":"Largest contentful paint","unit":"ms","rawUnit":"ms","direction":"lower","directionLabel":"Lower paints earlier","description":"Pre-interaction LCP from navigation start in an unthrottled lab setup, not field Core Web Vitals.","samples":10,"methodology":"Chromium 151.0.7922.34 · 1,440×900 viewport · 10 randomized cold-cache navigations · fresh foreground process/context/page per sample · native occlusion throttling disabled · no CPU or network throttling"},{"id":"noStreamingRequestsPerSecond","label":"Complete response","unit":"req/s","rawUnit":"req/s","direction":"higher","directionLabel":"Higher serves more requests","description":"Dynamic SSR throughput with a fully collected HTML response. One measured round cannot establish run-to-run variability.","samples":1,"methodology":"100 todos · 13 component types · 32 warm structural variants · current UTC state materialized per request · 64 connections from 2 load workers · 1 server process/worker pinned to 1 CPU · 1 × 20 s measured round · dynamic SSR · natural bytes"},{"id":"streamingRequestsPerSecond","label":"Progressive response","unit":"req/s","rawUnit":"req/s","direction":"higher","directionLabel":"Higher serves more requests","description":"Dynamic SSR throughput with each case's existing response behavior. Some cases remain buffered; see their notes.","samples":1,"methodology":"100 todos · 13 component types · 32 warm structural variants · current UTC state materialized per request · 64 connections from 2 load workers · 1 server process/worker pinned to 1 CPU · 1 × 20 s measured round · dynamic SSR · natural bytes"}],"rows":[{"caseId":"lit","label":"Lit","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":3007974,"display":"2.87","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.87 MiB"},"rendererPrivateBytes":{"value":76871680,"display":"73.31","detail":"10 isolated runs · MAD 1.01 MiB · p95 75.23 MiB"},"largestContentfulPaintMs":{"value":78,"display":"78","detail":"10 isolated runs · MAD 6 ms · p95 108 ms"},"noStreamingRequestsPerSecond":{"value":69.9,"display":"69.9","detail":"@lit-labs/ssr render (collected RenderResult) · node:http · MAD 0 req/s · p95 559.83 ms · 1,357,852-1,363,128 B natural"},"streamingRequestsPerSecond":{"value":8.5,"display":"8.5","detail":"@lit-labs/ssr RenderResultReadable (declarative shadow DOM) · node:http · MAD 0 req/s · p95 1,451.62 ms · 1,357,852-1,363,128 B natural"}}},{"caseId":"next","label":"Next.js","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":3874340,"display":"3.69","detail":"10 isolated runs · MAD <0.01 MiB · p95 3.7 MiB"},"rendererPrivateBytes":{"value":69007360,"display":"65.81","detail":"10 isolated runs · MAD 0.13 MiB · p95 66.62 MiB"},"largestContentfulPaintMs":{"value":92,"display":"92","detail":"10 isolated runs · MAD 6 ms · p95 132 ms"},"noStreamingRequestsPerSecond":{"value":138.4,"display":"138.4","detail":"Next.js production App Router SSR (fully collected at the framework's own Node http.Server response boundary before the response completes) · next start · MAD 0 req/s · p95 511.95 ms · 313,487-314,060 B natural"},"streamingRequestsPerSecond":{"value":141.6,"display":"141.6","detail":"Next.js production App Router streaming SSR · next start · MAD 0 req/s · p95 500.92 ms · 313,487-314,060 B natural · saturation warning: the 128-connection probe was 6.7% faster"}}},{"caseId":"nuxt","label":"Nuxt","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":3616128,"display":"3.45","detail":"10 isolated runs · MAD 0 MiB · p95 3.45 MiB"},"rendererPrivateBytes":{"value":67778560,"display":"64.64","detail":"10 isolated runs · MAD 0.29 MiB · p95 65.24 MiB"},"largestContentfulPaintMs":{"value":94,"display":"94","detail":"10 isolated runs · MAD 6 ms · p95 108 ms"},"noStreamingRequestsPerSecond":{"value":76,"display":"76","detail":"Nuxt production SSR (buffered synchronous route) · nitro node-server · MAD 0 req/s · p95 552.62 ms · 280,229-280,941 B natural"},"streamingRequestsPerSecond":{"value":74,"display":"74","detail":"Nuxt production SSR (buffered synchronous route) · nitro node-server · MAD 0 req/s · p95 572.65 ms · 280,229-280,941 B natural"}}},{"caseId":"react","label":"React","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":3060656,"display":"2.92","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.92 MiB"},"rendererPrivateBytes":{"value":66816000,"display":"63.72","detail":"10 isolated runs · MAD 0.24 MiB · p95 65.33 MiB"},"largestContentfulPaintMs":{"value":84,"display":"84","detail":"10 isolated runs · MAD 4 ms · p95 88 ms"},"noStreamingRequestsPerSecond":{"value":319.35,"display":"319.35","detail":"react-dom/server renderToString · node:http · MAD 0 req/s · p95 235.72 ms · 334,118-334,824 B natural"},"streamingRequestsPerSecond":{"value":267.85,"display":"267.85","detail":"react-dom/server renderToReadableStream · node:http · MAD 0 req/s · p95 252.8 ms · 334,118-334,824 B natural"}}},{"caseId":"react-tanstack","label":"React + TanStack Router","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":3462630,"display":"3.3","detail":"10 isolated runs · MAD <0.01 MiB · p95 3.3 MiB"},"rendererPrivateBytes":{"value":68110336,"display":"64.96","detail":"10 isolated runs · MAD 0.18 MiB · p95 65.86 MiB"},"largestContentfulPaintMs":{"value":84,"display":"84","detail":"10 isolated runs · MAD 4 ms · p95 92 ms"},"noStreamingRequestsPerSecond":{"value":239.25,"display":"239.25","detail":"react-dom/server renderToString + @tanstack/react-router renderRouterToString · node:http · MAD 0 req/s · p95 300.07 ms · 334,661-335,367 B natural"},"streamingRequestsPerSecond":{"value":223.05,"display":"223.05","detail":"react-dom/server stream + @tanstack/react-router renderRouterToStream · node:http · MAD 0 req/s · p95 337.78 ms · 334,661-335,367 B natural"}}},{"caseId":"solid","label":"Solid","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":4864128,"display":"4.64","detail":"10 isolated runs · MAD 0 MiB · p95 4.64 MiB"},"rendererPrivateBytes":{"value":71872512,"display":"68.54","detail":"10 isolated runs · MAD 0.36 MiB · p95 69.4 MiB"},"largestContentfulPaintMs":{"value":124,"display":"124","detail":"10 isolated runs · MAD 8 ms · p95 136 ms"},"noStreamingRequestsPerSecond":{"value":280.7,"display":"280.7","detail":"solid-js/web renderToString · node:http · MAD 0 req/s · p95 266.84 ms · 378,043-378,863 B natural"},"streamingRequestsPerSecond":{"value":242.7,"display":"242.7","detail":"solid-js/web renderToStream · node:http · MAD 0 req/s · p95 336.8 ms · 378,043-378,863 B natural"}}},{"caseId":"sveltekit","label":"SvelteKit","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":5076142,"display":"4.84","detail":"10 isolated runs · MAD <0.01 MiB · p95 4.84 MiB"},"rendererPrivateBytes":{"value":70533120,"display":"67.27","detail":"10 isolated runs · MAD 0.48 MiB · p95 68.09 MiB"},"largestContentfulPaintMs":{"value":86,"display":"86","detail":"10 isolated runs · MAD 6 ms · p95 96 ms"},"noStreamingRequestsPerSecond":{"value":198.7,"display":"198.7","detail":"SvelteKit production SSR (buffered synchronous route) · @sveltejs/adapter-node · MAD 0 req/s · p95 340.34 ms · 303,353-303,887 B natural · saturation warning: the 128-connection probe was 16.3% faster"},"streamingRequestsPerSecond":{"value":176.1,"display":"176.1","detail":"SvelteKit production SSR (buffered synchronous route) · @sveltejs/adapter-node · MAD 0 req/s · p95 368.77 ms · 303,354-303,888 B natural · saturation warning: the 128-connection probe was 5.9% faster"}}},{"caseId":"vue","label":"Vue","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":2792756,"display":"2.66","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.66 MiB"},"rendererPrivateBytes":{"value":64987136,"display":"61.98","detail":"10 isolated runs · MAD 0.35 MiB · p95 62.98 MiB"},"largestContentfulPaintMs":{"value":84,"display":"84","detail":"10 isolated runs · MAD 4 ms · p95 92 ms"},"noStreamingRequestsPerSecond":{"value":265.2,"display":"265.2","detail":"@vue/server-renderer renderToString · node:http · MAD 0 req/s · p95 281.61 ms · 341,230-341,908 B natural"},"streamingRequestsPerSecond":{"value":114.85,"display":"114.85","detail":"@vue/server-renderer renderToWebStream · node:http · MAD 0 req/s · p95 455.23 ms · 341,230-341,908 B natural"}}},{"caseId":"webui-bun-serve","label":"WebUI / Light DOM / Bun.serve","refreshed":true,"refreshLabel":"Refreshed 2026-09-04","values":{"jsHeapUsedBytes":{"value":2203604,"display":"2.1","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.1 MiB"},"rendererPrivateBytes":{"value":60465152,"display":"57.66","detail":"10 isolated runs · MAD 0.83 MiB · p95 61.82 MiB"},"largestContentfulPaintMs":{"value":66,"display":"66","detail":"10 isolated runs · MAD 2 ms · p95 76 ms"},"noStreamingRequestsPerSecond":{"value":563.3,"display":"563.3","detail":"@microsoft/webui Protocol.render (Light DOM, request-materialized Node-API state) · Bun.serve · MAD 0 req/s · p95 142.74 ms · 329,202-329,899 B natural · saturation warning: the 128-connection probe was 8.5% faster"},"streamingRequestsPerSecond":{"value":460.8,"display":"460.8","detail":"@microsoft/webui Protocol.streamResponse (Light DOM, request-materialized Node-API state) · Bun.serve · MAD 0 req/s · p95 167.96 ms · 337,114-337,843 B natural · saturation warning: the 128-connection probe was 9.3% faster"}}},{"caseId":"webui-deno-serve","label":"WebUI / Light DOM / Deno.serve","refreshed":true,"refreshLabel":"Refreshed 2026-09-04","values":{"jsHeapUsedBytes":{"value":2203584,"display":"2.1","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.1 MiB"},"rendererPrivateBytes":{"value":62160896,"display":"59.28","detail":"10 isolated runs · MAD 1.55 MiB · p95 61.57 MiB"},"largestContentfulPaintMs":{"value":64,"display":"64","detail":"10 isolated runs · MAD 4 ms · p95 76 ms"},"noStreamingRequestsPerSecond":{"value":554.6,"display":"554.6","detail":"@microsoft/webui Protocol.render (Light DOM, request-materialized Node-API state) · Deno.serve · MAD 0 req/s · p95 147.18 ms · 329,202-329,899 B natural"},"streamingRequestsPerSecond":{"value":415.6,"display":"415.6","detail":"@microsoft/webui Protocol.streamResponse (Light DOM, request-materialized Node-API state) · Deno.serve · MAD 0 req/s · p95 242.37 ms · 337,114-337,843 B natural"}}},{"caseId":"webui-fast-rust-actix","label":"WebUI / FAST V3 / Rust / Actix","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":5478080,"display":"5.22","detail":"10 isolated runs · MAD <0.01 MiB · p95 5.24 MiB"},"rendererPrivateBytes":{"value":73490432,"display":"70.09","detail":"10 isolated runs · MAD 0.3 MiB · p95 71.79 MiB"},"largestContentfulPaintMs":{"value":88,"display":"88","detail":"10 isolated runs · MAD 6 ms · p95 104 ms"},"noStreamingRequestsPerSecond":{"value":976.75,"display":"976.75","detail":"webui-handler render (Rust, FAST V3, single response) · actix-web · MAD 0 req/s · p95 72.13 ms · 596,601-598,231 B natural"},"streamingRequestsPerSecond":{"value":625.6500000000001,"display":"625.65","detail":"webui-handler chunked ResponseWriter (Rust, FAST V3) · actix-web · MAD 0 req/s · p95 108.43 ms · 596,601-598,231 B natural"}}},{"caseId":"webui-node-http","label":"WebUI / Light DOM / Node node:http","refreshed":true,"refreshLabel":"Refreshed 2026-09-04","values":{"jsHeapUsedBytes":{"value":2203760,"display":"2.1","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.1 MiB"},"rendererPrivateBytes":{"value":60893184,"display":"58.07","detail":"10 isolated runs · MAD 0.74 MiB · p95 60.96 MiB"},"largestContentfulPaintMs":{"value":66,"display":"66","detail":"10 isolated runs · MAD 4 ms · p95 100 ms"},"noStreamingRequestsPerSecond":{"value":609.45,"display":"609.45","detail":"@microsoft/webui Protocol.render (Light DOM, request-materialized Node-API state) · node:http · MAD 0 req/s · p95 127.89 ms · 329,202-329,899 B natural"},"streamingRequestsPerSecond":{"value":434.45,"display":"434.45","detail":"@microsoft/webui Protocol.streamResponse (Light DOM, request-materialized Node-API state) · node:http · MAD 0 req/s · p95 189.99 ms · 337,114-337,843 B natural · saturation warning: the 128-connection probe was 6.0% faster"}}},{"caseId":"webui-rust-actix","label":"WebUI / Light DOM / Rust / Actix","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":2204666,"display":"2.1","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.1 MiB"},"rendererPrivateBytes":{"value":61323264,"display":"58.48","detail":"10 isolated runs · MAD 0.74 MiB · p95 61.62 MiB"},"largestContentfulPaintMs":{"value":68,"display":"68","detail":"10 isolated runs · MAD 4 ms · p95 76 ms"},"noStreamingRequestsPerSecond":{"value":1593.4,"display":"1,593.4","detail":"webui-handler render (Rust) · actix-web · MAD 0 req/s · p95 44.81 ms · 329,202-329,899 B natural"},"streamingRequestsPerSecond":{"value":1388.45,"display":"1,388.45","detail":"webui-handler StreamingResponse (Rust) · actix-web · MAD 0 req/s · p95 50.87 ms · 337,114-337,843 B natural"}}},{"caseId":"webui-shadowdom-rust-actix","label":"WebUI / Shadow DOM / Rust / Actix","refreshed":false,"refreshLabel":"Earlier result; date not recorded","values":{"jsHeapUsedBytes":{"value":2568326,"display":"2.45","detail":"10 isolated runs · MAD <0.01 MiB · p95 2.45 MiB"},"rendererPrivateBytes":{"value":68249600,"display":"65.09","detail":"10 isolated runs · MAD 0.76 MiB · p95 67 MiB"},"largestContentfulPaintMs":{"value":84,"display":"84","detail":"10 isolated runs · MAD 8 ms · p95 116 ms"},"noStreamingRequestsPerSecond":{"value":1261.65,"display":"1,261.65","detail":"webui-handler render (Rust, Shadow DOM) · actix-web · MAD 0 req/s · p95 55.55 ms · 483,598-485,019 B natural"},"streamingRequestsPerSecond":{"value":1091.75,"display":"1,091.75","detail":"webui-handler StreamingResponse (Rust, Shadow DOM) · actix-web · MAD 0 req/s · p95 65.06 ms · 491,524-492,977 B natural"}}}]}
