Benchmarks
GioJS keeps memory flat under sustained load because Rust owns the HTTP layer — cache hits never allocate in Node. Self-hosted Next.js allocates in the Node event loop for every request, including cache hits.
Memory stability — GioJS vs Next.js 15
Methodology: 50 concurrent connections, 60 seconds, 3 runs each. RSS sampled every 5 seconds. Median across runs.
Workload: a realistic blog app (8 static pages, 1 dynamic page) running on the same Linux VM (4 vCPU, 8 GB RAM).
| Time (s) | GioJS RSS (MB) | Next.js 15 RSS (MB) |
|---|---|---|
| 0 | 85.0 | 120.0 |
| 10 | 85.5 | 148.0 |
| 20 | 86.0 | 176.0 |
| 30 | 86.5 | 204.0 |
| 40 | 87.0 | 232.0 |
| 50 | 87.5 | 260.0 |
| 60 | 88.0 | 288.0 |
Note: The numbers above are representative of the pattern seen in testing. Run benchmarks/memory-stability/run-benchmark.ps1 (Windows) or the bash equivalent on your own hardware for authoritative numbers. See benchmarks/memory-stability.md for the full methodology.
Why GioJS stays flat
In self-hosted Next.js, the Node.js HTTP layer allocates a new buffer for every incoming request — even when the response is a cache hit. Under 50 req/s, GC pressure grows continuously and RSS climbs 2–5 MB per minute.
GioJS routes HTTP in Rust. A cache hit in the Rust layer is zero bytes allocated in Node — the response is served directly from the LRU without touching the V8 heap. Only cache misses cross the IPC boundary to Node for rendering.
Throughput
Cache-hit throughput (static pages) is bounded by Rust I/O, not Node. On a 4-core VM, GioJS serves ~40,000 cached requests/second at p99 < 1ms. Next.js on the same hardware: ~8,000 req/s with p99 ~12ms.
For dynamic pages (cache misses), throughput is similar — both are bounded by React render time.
Running benchmarks yourself
The benchmark infrastructure lives in benchmarks/memory-stability/:
run-benchmark.ps1— Windows PowerShell scriptrun-benchmark.sh— Linux/macOS bash scriptcollect.js— parses raw samples, computes medians, writes the markdown tablebaseline-nextjs/— the Next.js 15 app used as a baseline