Skip to content

Benchmarks

Zeus compiles to native code through LLVM, so a fair question is: how fast is it today? This page tracks Zeus against Go (an optimized native compiler) and Node.js (a mature JIT) on a small set of basic, CPU-bound algorithms.

Measured 2026-07-11T09:57:48Z on Apple M1 Pro, Darwin 26.5.2 (arm64). Go go1.26.3 darwin/arm64, Node v22.22.2, hyperfine 1.20.0. Zeus v0.0.21-alpha-28-gfc5c343.

Summary

Wall-clock time per run — lower is better. Zeus vs Go / Zeus vs Node are Zeus’s time divided by the other language’s: below 1× means Zeus is faster, above 1× means slower.

BenchmarkZeusGoNode.jsZeus vs GoZeus vs Node
Recursive Fibonacci315 ± 12 ms343 ± 2 ms970 ± 25 ms0.92×0.32×
Loop Sum220 ± 2 ms481 ± 12 ms984 ± 17 ms0.46×0.22×
Prime Sieve98 ± 3 ms87 ± 7 ms150 ± 2 ms1.13×0.66×
Insertion Sort68 ± 1 ms37 ± 2 ms120 ± 15 ms1.84×0.56×
Matrix Multiply96 ± 8 ms98 ± 3 ms270 ± 1 ms0.98×0.36×

Results by benchmark

Recursive Fibonacci

Naive recursive fib(40). Dominated by function-call overhead and integer addition.

Recursive Fibonacci benchmark chart

Loop Sum

Tight loop summing (i & 1023) over 1..1e9 in a 64-bit accumulator. Measures raw loop and integer-ALU throughput.

Loop Sum benchmark chart

Prime Sieve

Sieve of Eratosthenes up to 30,000,000. Exercises large array allocation, indexing and nested loops.

Prime Sieve benchmark chart

Insertion Sort

O(n^2) insertion sort of a 20,000-element LCG-filled array. Exercises array get/set and comparisons.

Insertion Sort benchmark chart

Matrix Multiply

Naive 512x512 integer matrix multiplication. Exercises 2D arrays and a memory-bound triple-nested loop.

Matrix Multiply benchmark chart