The Computer Language
Benchmarks Game

Erlang HiPE versus Ruby fastest programs

Back in April 2010, Russ Cox charitably suggested that only fannkuch-redux, fasta, k-nucleotide, mandlebrot, nbody, reverse-complement and spectral-norm were close to fair comparisons. As someone who implemented programming languages, his interest was "measuring the quality of the generated code when both compilers are presented with what amounts to the same program."

Differences in approach - to memory management, parallel programming, regex, arbitrary precision arithmetic, implementation technique - don't fit in that kind-of fair comparison — but we still have to deal with them.

These are only the fastest programs. There may be additional measurements for programs which seem more-like a fair comparison to you. Always look at the source code.

spectral-norm
source secs mem gz busy cpu load
Erlang HiPE 20.84 32,656 747 68.21 85% 84% 79% 79%
Ruby 232.89 18,324 326 274.11 16% 92% 7% 2%
binary-trees
source secs mem gz busy cpu load
Erlang HiPE 8.18 464,444 478 24.76 87% 72% 72% 71%
Ruby 64.75 413,136 1107 221.94 79% 90% 80% 93%
fannkuch-redux
source secs mem gz busy cpu load
Erlang HiPE 85.39 24,184 1038 338.26 97% 100% 100% 100%
Ruby 558.13 14,492 1454 2,138.85 100% 95% 97% 92%
mandelbrot
source secs mem gz busy cpu load
Erlang HiPE 110.22 52,080 792 440.54 100% 100% 100% 100%
Ruby 444.18 59,864 954 1,774.22 100% 100% 100% 100%
n-body
source secs mem gz busy cpu load
Erlang HiPE 194.05 24,108 1399 196.23 100% 0% 0% 1%
Ruby 382.36 15,760 1137 429.00 6% 100% 1% 6%
fasta
source secs mem gz busy cpu load
Erlang HiPE 48.54 23,740 1164 53.00 61% 16% 1% 30%
Ruby 66.96 97,260 1069 106.91 75% 50% 12% 23%
k-nucleotide
source secs mem gz busy cpu load
Erlang HiPE 138.53 752,144 937 392.68 65% 65% 61% 92%
Ruby 180.88 137,772 667 681.89 98% 99% 89% 91%
reverse-complement
source secs mem gz busy cpu load
Erlang HiPE 41.91 2,708,764 1302 116.88 73% 80% 62% 64%
Ruby 24.62 1,605,020 295 45.49 61% 67% 35% 22%
regex-redux
source secs mem gz busy cpu load
Erlang HiPE 56.34 1,994,236 1048 85.86 54% 27% 32% 40%
Ruby 21.68 268,116 751 68.01 94% 86% 70% 63%
pidigits
source secs mem gz busy cpu load
Erlang HiPE 16.28 29,064 562 20.61 18% 99% 2% 8%
Ruby 3.22 328,844 485 7.50 77% 49% 75% 33%
Erlang HiPE

Erlang/OTP 22 [erts-10.5] [source] [64-bit]
[smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Ruby

ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
--jit