bext/Performance labBEXT / 05
Performance lab

Performance.
In context.

Explore measured throughput and rendering results. Read the conditions, understand the workload, and distinguish rendering time from a complete HTTP request.

Inspect the source
FIG. 05 / BENCHMARKS
Monitoring illustration. Not measured data.
IN THIS CHAPTER01Throughput02Render time03Methodology
Throughput

Request throughput

27K–52K
req/s
Simple pages
11K–38K
req/s
ISR cache
5.5–80×
faster
vs Next.js
TSX rendering

PRISM against SSR engines

The same 38.3 KB Tailwind catalog page, the same data, and byte-validated HTML. Warm synchronous render CPU time on Bun 1.3.13, pinned to one core.

15.8
µs · average
Safe hand-written JS ceiling
15.7
µs · average
PRISM compiled
38
µs · average
Marko 5
75.3
µs · average
PRISM automatic JSX
78
µs · average
Solid 1.9
1,823
µs · average
React 19
3.9
µs · average
Rust string builder

The safe JS ceiling escapes the same dynamic values: at 15.7 versus 15.8 µs, compiled PRISM matches it within measurement noise. PRISM direct h(): 69.3 µs average / 62.1 µs p50. Automatic JSX: 75.3 / 67.9 µs. Solid keeps a slightly lower p50 (61 µs), while PRISM has the lower average; they remain in the same band. Compiled PRISM is about 2.4× ahead of Marko and 116× ahead of React.

Comparison

vs Deno, Bun & Node

Same machine, same workload: a plain-text "Hello, World!" (GET) and a bearer-authenticated JSON API (POST: validate the token, parse the JSON body, return JSON). bext's native Rust path vs Deno.serve, Bun.serve and node:http, oha @ 100.

1.9×
throughput
Hello · vs Deno
2.5×
throughput
JSON API · vs Bun
4.6×
throughput
JSON API · vs Node

bext 152.7K / 134.8K req/s (hello / api) · Deno 2.8.3 80.5K / 57.7K · Bun 1.3 74.9K / 53.8K · Node 25 42.2K / 29.0K. AMD Ryzen 9 5900X, oha 1.14.0, 100 connections, best of 2.

Transparency

Methodology

The TSX shootout measures warm synchronous render CPU time on Bun 1.3.13, pinned to one core, after byte-for-byte validation; close paths use alternating series and their median. HTTP page benchmarks use autocannon (10 connections, 30 seconds). The runtime comparison uses oha at 100 connections (5-second warm-up, best of 2).

benchmark.sh
# Reproduce these benchmarks yourself
autocannon -c 10 -d 30 http://localhost:3000/
autocannon -c 10 -d 30 http://localhost:3000/api/data
autocannon -c 10 -d 30 http://localhost:3000/ssr-page

Measure it yourself.

One command to install, one to deploy. Run bext on your own hardware and compare.

Get startedView pricing