A collection of micro-benchmarks comparing Julia's performance against other languages.
All benchmarks implement identical algorithms across languages (serial, single-core). Times are normalized relative to C.
| Benchmark | Description |
|---|---|
iteration_pi_sum |
Alternating power-series summation (nested loops) |
recursion_fibonacci |
Doubly-recursive Fibonacci(20) |
recursion_quicksort |
Quicksort on 5,000 random numbers |
parse_integers |
Parse 1,000 random hex strings to integers |
print_to_file |
Write 100,000 formatted lines to /dev/null |
matrix_statistics |
Statistics on random 5x5 matrices (1,000 iterations) |
matrix_multiply |
Multiply two random 1,000x1,000 matrices (BLAS) |
userfunc_mandelbrot |
Mandelbrot set computation over a grid |
Mathematica and Matlab benchmarks are available but not run in CI.
Two workflows run the benchmarks:
benchmarks-single-runner.ymlproduces the published results. It runs every language on one runner: it installs and compiles everything first, then runs the whole suite three times back-to-back and keeps the best time per benchmark. Itsreportjob builds and deploys the results site from those results, which are also attached to the run as thebench-allartifact and shown in the job summary.benchmarks.ymlruns each language in its own job, as a quick per-language check. Jobs can land on runners with different CPUs, so its times are not comparable across languages and are not published.