e30d8a5eb9
Reuse TCP connections for multiple requests, honor Connection close, and raise wrk health RPS from ~45k to ~80k+ on the same machine. - Loop HandleConnection up to 1000 reqs/fd with Connection keep-alive - RawRequest_WantsKeepAlive (HTTP/1.1 default; HTTP/1.0 needs keep-alive) - Nexus 0.3.0 banner; benches note before/after RPS
Bux benchmarks (E.5)
Micro-kernels + optional Nexus HTTP throughput for regression and language comparison.
Quick run
# From repo root
make bench # Bux micro + C + Nim (+ Zig if installed)
make bench-nexus # wrk vs apps/nexus /api/health
BENCH_NEXUS=1 make bench
Micro suites
| Suite | Kernels | Build |
|---|---|---|
micro/ |
Bux: int_loop, fib30, string_concat, array_push |
buxc build |
c/ |
C: fib30, int_loop |
gcc -O2 |
nim/ |
Nim twins | nim c -d:release --opt:speed |
zig/ |
Zig twins (optional) | zig build-exe -OReleaseFast |
Output lines:
BENCH <name> iters=N total_us=T us_per_op=P
Nexus throughput
tools/bench_nexus.sh / make bench-nexus:
- Builds
apps/nexus - Starts on
NEXUS_PORT(default 18080), bind127.0.0.1 wrk -t4 -c64 -d5sagainst/api/health- Prints
BENCH nexus_health rps=…
Env knobs:
| Variable | Default | Meaning |
|---|---|---|
NEXUS_PORT |
18080 |
Listen port (also used by the server binary) |
NEXUS_WORKERS |
4 |
Worker threads |
NEXUS_BENCH_DURATION |
5s |
wrk -d |
NEXUS_BENCH_C |
64 |
wrk connections |
NEXUS_BENCH_T |
4 |
wrk threads |
Server-side (any nexus run):
NEXUS_PORT,NEXUS_WORKERS,NEXUS_BIND,NEXUS_PUBLIC
Notes
- Numbers vary by machine; use them relatively (same host, same day).
- Nexus v0.3 uses HTTP/1.1 keep-alive (default). Sample RPS on one machine:
- close-only era: ~45k req/s
- keep-alive: ~80k+ req/s (
wrk -t4 -c64 -d5s /api/health)
- Requires
wrkforbench-nexus(apt install wrkon Debian/Ubuntu).