Benchmark Results

Docker-verified cross-language performance comparison

2026-03-11 · AMD Ryzen 9 5900X (24 logical cores) · Docker container (vibelang-third-party-bench:latest)

01

Geomean Ratios

VibeLang / Other — lower is better for VibeLang

vs C

0.89x

VibeLang 1.1x faster

3 shared benchmarks

vs Zig

0.82x

VibeLang 1.2x faster

12 shared benchmarks

vs Rust

0.93x

VibeLang 1.1x faster

16 shared benchmarks

vs C++

1.74x

VibeLang 1.7x slower

4 shared benchmarks

vs Python

0.05x

VibeLang 20.6x faster

3 shared benchmarks

vs TypeScript

0.12x

VibeLang 8.6x faster

12 shared benchmarks

vs PHP

0.04x

VibeLang 25.0x faster

3 shared benchmarks

vs Elixir

0.03x

VibeLang 37.0x faster

5 shared benchmarks

02

Runtime Results

Median execution time in milliseconds (lower is better)

ProblemVibeLangCC++RustZigPythonTSPHP
binarytrees13.986.1106177495
coro-prime-sieve3.350.389.7146
edigits87539.4270
fannkuch-redux33320.319.9104
fasta29.815.38.7198
helloworld1.71.11.01.22.027.433.616.9
http-server36.5193328
json-serde3.356.2141
lru3.820.011.3127
mandelbrot59.111.79.4
merkletrees14.5107123144619
nbody37.224.215.018.521.369.5
nsieve1.755.060.960.054.432.9
pidigits2022274011018
regex-redux459243.9
secp256k190.9142437
spectral-norm56538.370.963.3162216

Cyan = VibeLang is faster. Orange = VibeLang is 3x+ slower. — = no adapter available for that language/problem.

03

VibeLang vs Rust

Head-to-head across 16 shared benchmarks — VibeLang wins 9, Rust wins 7

VibeLang Wins (9)

nsieve
1.7msvs60.0ms35.3x faster
json-serde
3.3msvs56.2ms17.0x faster
coro-prime-sieve
3.3msvs50.3ms15.2x faster
merkletrees
14.5msvs107ms7.4x faster
binarytrees
13.9msvs86.1ms6.2x faster
lru
3.8msvs20.0ms5.3x faster
http-server
36.5msvs193ms5.3x faster
secp256k1
90.9msvs142ms1.6x faster
pidigits
202msvs227ms1.1x faster

Rust Wins (7)

helloworld
1.7msvs1.2ms1.4x faster
fasta
29.8msvs15.3ms1.9x faster
nbody
37.2msvs18.5ms2.0x faster
mandelbrot
59.1msvs11.7ms5.1x faster
fannkuch-redux
333msvs19.9ms16.7x faster
edigits
875msvs39.4ms22.2x faster
regex-redux
4592msvs43.9ms104.6x faster

regex-redux: VibeLang uses POSIX regex.h; Rust uses its optimized regex crate. edigits: Custom O(n²) bigint vs Rust's ibig. fannkuch-redux: No auto-vectorization yet. mandelbrot: Scalar-only, no SIMD.

04

Compile Time

Cold build of helloworld (includes toolchain startup)

VibeLang
3.0s328 KB
C
1.5s16 KB
C++
1.5s16 KB
Rust
4.6s316 KB
Zig
6.0s1.7 MB

VibeLang compiles 1.5x faster than Rust and 2.0x faster than Zig.

05

Benchmark Suite

18 programs from the PLB-CI (Programming Language Benchmarks) suite

Startup
helloworld

Process launch and I/O

Allocation
binarytrees

GC-managed binary tree construction and traversal

Allocation
merkletrees

Hash-based tree construction with SHA-256

Numeric
nbody

N-body gravitational simulation (float-heavy)

Numeric
spectral-norm

Eigenvalue approximation via power iteration

Numeric
mandelbrot

Mandelbrot set computation (complex arithmetic)

Permutation
fannkuch-redux

Pancake sorting permutation benchmark

String
fasta

DNA sequence generation with weighted random

Sieve
nsieve

Sieve of Eratosthenes for prime counting

Bigint
edigits

Compute digits of e using arbitrary-precision arithmetic

Bigint
pidigits

Compute digits of pi using spigot algorithm

Data Structure
lru

Least-recently-used cache with eviction

Hash Map
knucleotide

Nucleotide frequency counting

Regex
regex-redux

DNA sequence pattern matching and replacement

Serialization
json-serde

JSON parse, transform, and serialize

Network
http-server

HTTP request/response handling

Crypto
secp256k1

Elliptic curve cryptography operations

Concurrency
coro-prime-sieve

Concurrent prime sieve using coroutines

06

Methodology

How these benchmarks are run

Environment

cpu
AMD Ryzen 9 5900X (24 logical cores)
memory
32 GB DDR4
os
Ubuntu 24.04 (WSL2)
kernel
Linux 6.6.87.2-microsoft-standard-WSL2
runner
Docker container (vibelang-third-party-bench:latest)
tool
PLB-CI BenchTool + Hyperfine
binary
vibe 1.1.0 (release, bench-runtime, GMP-enabled)
date
2026-03-11

Process

  1. All languages compiled inside a single Docker container with identical toolchains
  2. PLB-CI BenchTool orchestrates build, test, and bench phases
  3. Every adapter's output is verified against PLB-CI canonical expected values
  4. Runtime measured with Hyperfine (multiple runs, warmup rounds)
  5. Geomean computed only across shared benchmarks where both languages have valid results
  6. Results exclude Go, Kotlin, and Swift due to build output path mismatches
07

Known Limitations

Transparency about what these numbers don't show

C/C++ coverage is limited

Only 3-5 shared benchmarks. The C geomean is dominated by nsieve where VibeLang is 22.9x faster. More shared benchmarks are needed for a representative ratio.

Go, Kotlin, Swift are excluded

Build output path mismatches in the PLB-CI BenchTool prevented these languages from producing valid binaries. This is a tooling issue, not a language limitation.

regex-redux is an outlier

VibeLang uses POSIX regex.h (4.6s) while Rust uses its highly optimized regex crate (44ms). This is a library gap, not a compiler performance issue.

edigits uses custom bigint

VibeLang's O(n²) schoolbook multiplication loses to Rust's ibig and Python's GMP. GMP support is implemented but may not have linked correctly in this Docker run.

No multi-threading

VibeLang benchmarks are single-threaded. Languages with parallel implementations (Rust rayon, Go goroutines) would show larger advantages on multi-core workloads.

Python results are sparse

Many Python benchmarks use C extensions (NumPy, BLAS) that make pure-language comparison misleading. Only 3 benchmarks with valid pure-Python results are included.

All benchmark source code, adapters, and raw results are open source.