Skip to content
NewBun 1.4.5 is out. Release notes
AphrodyBun

Benchmarks

Measured runtime and product workloads. Each table identifies its binaries, source, measurement method and execution host.

Source: CI run of the aphrody-perf workflow (artifacts perf-report-*).

linux-x64

Bun OS 1.4.6 (fd9d7a224) compared with upstream 1.4.3 (c6da4a4d3) on linux 6.17.0-1022-azure x64, AMD EPYC 7763 64-Core Processor x4, 16 GiB; 40 runs, 5 warmup, engine hyperfine, measured 2026-10-18T14:43:39.721Z. Median (p95); ratio = Bun OS / upstream, lower is faster for times. These measurements apply to the recorded executables and workload.

Recorded runtime measurements
MeasureUpstreamBun OSRatioGate
bun --version1.41 ms (p95 2.42 ms)1.52 ms (p95 2.19 ms)1.078ok
bun -e ''1.35 ms (p95 1.95 ms)1.52 ms (p95 2.80 ms)1.125ok
bun run (empty script)3.40 ms (p95 4.41 ms)4.14 ms (p95 5.39 ms)1.218ok
bun test (one empty test)4.10 ms (p95 5.25 ms)5.33 ms (p95 6.21 ms)1.301ok
bun build (small project)4.81 ms (p95 6.58 ms)5.07 ms (p95 6.04 ms)1.055ok
bun install offline (warm cache)4.02 ms (p95 4.68 ms)4.36 ms (p95 6.10 ms)1.085ok
RSS at startup13.3 MiB (p95 18.3 MiB)29.1 MiB (p95 34.7 MiB)2.185info
RSS after loading node:* modules27.4 MiB (p95 27.9 MiB)43.9 MiB (p95 46.6 MiB)1.606info
require of node:* modules37.5 ms (p95 42.8 ms)35.5 ms (p95 36.9 ms)0.947ok
import() of node:* modules37.5 ms (p95 43.4 ms)36.1 ms (p95 37.2 ms)0.963ok
require of bun:* modules1.22 ms (p95 1.64 ms)1.52 ms (p95 1.83 ms)1.253ok
Bun.serve hello + first request1.63 ms (p95 1.83 ms)1.74 ms (p95 2.42 ms)1.067ok
local fetch latency (p50)0.11 ms (p95 0.13 ms)0.12 ms (p95 0.13 ms)1.040ok
local fetch latency (p99)0.20 ms (p95 0.26 ms)0.16 ms (p95 0.18 ms)0.789info
local fetch, sequential throughput8,463 req/s (p95 9,065 req/s)8,367 req/s (p95 9,902 req/s)1.011info
require of additional Bun OS modulesn/a3.99 ms (p95 4.27 ms)info
Binary size84.9 MiB184.9 MiB2.179ok

Run note: Release upstream bun-v1.4.6 absente : repli sur bun-v1.4.3. Versions de base différentes (fork 1.4.6, upstream 1.4.3) : l'écart inclut le travail amont entre les deux; taille et RSS ne bloquent pas (--strict pour les imposer).

What is measured

  • bun --version
  • bun -e ''
  • bun run (empty script)
  • bun test (one empty test)
  • bun build (small project)
  • bun install offline (warm cache)
  • RSS at startup
  • RSS after loading node:* modules
  • require of node:* modules
  • import() of node:* modules
  • require of bun:* modules
  • Bun.serve hello + first request
  • local fetch latency (p50)
  • local fetch latency (p99)
  • local fetch, sequential throughput
  • require of additional Bun OS modules
  • Binary size

Thresholds live in bench/aphrody/thresholds.json: a case fails when the runtime median exceeds upstream by more than its ratio and its absolute delta.

Run it yourself

git clone https://github.com/aphrody-labs/bun && cd bun
# runtime binary against the upstream release of the same base version
bun scripts/aphrody/perf-gate.ts --fork ~/.bun/bin/bun --upstream-version 1.4.5 --runs 40 --out tmp/perf

The report is written to tmp/perf/perf-report.md and perf-report.json. The upstream micro-benchmarks of bench/ run with cd bench && bun install && bun run <name>.