RepoFlow Team · Feb 17, 2026

Node.js vs Deno vs Bun Performance Benchmarks

We benchmarked Node, Deno, and Bun to see where each runtime wins

After benchmarking Node.js across versions, we got a lot of requests to compare Node.js to Bun and Deno, so we tested the latest version of each runtime.

This is a microbenchmark suite. It is not a full app benchmark, but it is still useful for seeing where each runtime is strong when the exact same code patterns run on the same machine.

Versions tested

  1. Node 25.6.1
  2. Deno 2.6.9
  3. Bun 1.3.9

HTTP GET throughput

Localhost server with keep alive, 32 concurrent clients, 256 byte payload.

JSON.parse small payload

Parse about 1 KB JSON repeatedly, measures parser throughput.

JSON.parse large payload

Parse about 100 KB JSON repeatedly, stresses larger input handling.

JSON.stringify small object

Serialize a small object repeatedly, measures serializer throughput.

JSON.stringify medium object

Serialize a larger object repeatedly, closer to real responses and logs.

SHA 256 hashing small buffer

Hash about 1 KB buffers using the built in crypto API.

SHA 256 hashing large buffer

Hash about 64 KB buffers, shows bulk hashing throughput.

Buffer copy 64 KB

Copy about 64 KB repeatedly using Uint8Array.set, measures raw memory bandwidth and memory subsystem performance.

Array map plus reduce

Common data transformation pattern, map then aggregate with reduce.

String concatenation

Repeated string building, highlights string handling performance

Integer loop plus arithmetic

Tight numeric loop with simple arithmetic, measures raw JIT throughput.

Integer loop with randomized input

Adds randomness inside the loop to reduce predictable optimizations.

Microtask chain throughput

Promise microtasks chained back to back, measures microtask scheduling.

Async await throughput

Many async function resumes, measures async scheduling overhead

How the Tests Were Performed

Each test was run 15 times. The charts report p50, median throughput.
The system was allowed to cool down between runs to avoid thermal bias.
  1. Hardware: Apple M4, 10 cores, macOS 25.0.0 (arm64)
  2. Tooling: Custom Node.js benchmark harness, no external frameworks involved

Conclusion

Across these 14 tests, Bun led in 8, Deno led in 5, and Node led in 1.

Bun stood out most on server style throughput, especially HTTP and large JSON parsing.
Deno led the async scheduling style tests, and also edged out the tight arithmetic loop.
Node stayed very competitive overall and led the SHA 256 hashing test for the 1,024 byte input.

As always, let us know which benchmark you’d like to see next.
Happy Benchmark Tuesday!

Share article

Benchmark
Express 4 vs Express 5 Performance Benchmark
Product
Cache GitHub Releases with a Universal Repository
Release
Run a Private Docker Registry on Your iPhone