The Computer Language
Benchmarks Game

Ruby versus Python 3 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.

n-body
source secs mem gz busy cpu load
Ruby 374.51 25,668 1137 387.63 67% 20% 2% 14%
Python 3 865.18 8,176 1196 874.96 2% 20% 79% 0%
binary-trees
source secs mem gz busy cpu load
Ruby 44.61 531,600 1096 125.16 67% 72% 60% 81%
Python 3 80.30 448,004 589 286.50 95% 87% 87% 88%
fannkuch-redux
source secs mem gz busy cpu load
Ruby 303.19 26,680 1444 1,169.40 100% 91% 98% 97%
Python 3 534.40 47,236 950 2,104.05 99% 97% 99% 99%
fasta
source secs mem gz busy cpu load
Ruby 51.74 123,240 1069 55.08 43% 44% 2% 17%
Python 3 63.55 844,180 1947 129.71 40% 71% 33% 61%
regex-redux
source secs mem gz busy cpu load
Ruby 15.97 277,888 726 33.81 41% 76% 59% 36%
Python 3 18.45 457,340 512 37.52 69% 37% 50% 48%
spectral-norm
source secs mem gz busy cpu load
Ruby 150.32 26,188 839 585.35 97% 97% 97% 97%
Python 3 169.87 49,188 417 675.02 100% 99% 99% 99%
pidigits
source secs mem gz busy cpu load
Ruby 3.23 380,036 485 4.90 12% 50% 52% 37%
Python 3 3.47 10,356 386 3.53 1% 1% 0% 100%
reverse-complement
source secs mem gz busy cpu load
Ruby 20.99 1,611,616 295 27.84 98% 7% 18% 9%
Python 3 16.93 1,777,852 434 17.58 78% 21% 4% 0%
mandelbrot
source secs mem gz busy cpu load
Ruby 335.33 66,188 931 1,339.92 100% 100% 100% 100%
Python 3 259.50 48,192 688 1,036.70 100% 100% 100% 100%
k-nucleotide
source secs mem gz busy cpu load
Ruby 103.71 400,128 859 377.05 95% 85% 95% 89%
Python 3 72.24 199,856 1967 275.38 94% 94% 96% 96%
Ruby

ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
--jit

Python 3

Python 3.8.0