Ruby VS Dart benchmarks

Current benchmark data was generated on Tue Jul 01 2025, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 755ms 6.7ms 80.9MB 730ms 33ms dart/exe 3.8.1
ruby 1-m.rb 4407ms 191ms 804.1MB 6390ms 450ms truffleruby 24.2.1
ruby 1.rb 4955ms 35ms 109.4MB 4853ms 87ms ruby/yjit 3.4.4
ruby 1.rb timeout 0.0ms 70.5MB 4940ms 40ms ruby 3.4.4

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 77ms 0.9ms 42.8MB 53ms 13ms dart/exe 3.8.1
ruby 1.rb 505ms 6.5ms 20.3MB 480ms 10ms ruby/yjit 3.4.4
ruby 1-m.rb 570ms 55ms 424.9MB 1133ms 167ms truffleruby 24.2.1
ruby 1.rb 967ms 21ms 19.5MB 943ms 10ms ruby 3.4.4

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 1446ms 22ms 63.8MB 1363ms 67ms ruby/yjit 3.4.4
ruby 1.rb 1861ms 20ms 63.0MB 1787ms 63ms ruby 3.4.4
dart 1.dart timeout 0.0ms 19.3MB 5467ms 70ms dart/exe 3.8.1
ruby 1.rb timeout 0.0ms 327.3MB 4810ms 1417ms truffleruby 24.2.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 155ms 1.3ms 25.6MB 127ms 17ms ruby/yjit 3.4.4
ruby 1.rb 184ms 1.1ms 25.0MB 157ms 17ms ruby 3.4.4
dart 1.dart 356ms 3.3ms 10.4MB 353ms 10ms dart/exe 3.8.1
ruby 1.rb timeout 0.0ms 351.7MB 4637ms 1527ms truffleruby 24.2.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 361ms 0.4ms 8.8MB 350ms 0ms dart/exe 3.8.1
ruby 6.rb 2079ms 63ms 23.0MB 2053ms 10ms ruby/yjit 3.4.4
ruby 6-m.rb 2218ms 75ms 408.9MB 5653ms 337ms truffleruby 24.2.1
ruby 6.rb 3700ms 18ms 22.4MB 3673ms 10ms ruby 3.4.4

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 43ms 1.2ms 8.9MB 30ms 0ms dart/exe 3.8.1
ruby 6.rb 257ms 1.5ms 15.2MB 240ms 3ms ruby/yjit 3.4.4
ruby 6.rb 420ms 1.2ms 14.4MB 403ms 7ms ruby 3.4.4
ruby 6-m.rb 848ms 18ms 388.9MB 2133ms 180ms truffleruby 24.2.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 3.4ms 0.1ms 6.4MB 0ms 0ms dart/exe 3.8.1
ruby 1.rb 35ms 1.1ms 141.3MB 16ms 24ms truffleruby 24.2.1
ruby 1.rb 52ms 0.9ms 12.8MB 40ms 0ms ruby 3.4.4
ruby 1.rb 52ms 1.2ms 12.9MB 40ms 2ms ruby/yjit 3.4.4

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 164ms 2.5ms 53.3MB 137ms 20ms dart/exe 3.8.1
ruby 1.rb 259ms 6.8ms 28.8MB 233ms 10ms ruby 3.4.4
ruby 1.rb 260ms 1.6ms 30.1MB 230ms 17ms ruby/yjit 3.4.4
ruby 1-m.rb 4473ms 273ms 553.2MB 11820ms 333ms truffleruby 24.2.1

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1452ms 7.1ms 204.4MB 1683ms 117ms dart/exe 3.8.1
ruby 1.rb 2100ms 16ms 135.4MB 2017ms 73ms ruby 3.4.4
ruby 1.rb 2102ms 15ms 135.2MB 2013ms 73ms ruby/yjit 3.4.4
ruby 1.rb timeout 0.0ms 507.3MB 13217ms 343ms truffleruby 24.2.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 173ms 4.6ms 9.5MB 163ms 0ms dart/exe 3.8.1
ruby 1.rb 342ms 2.8ms 13.5MB 323ms 0ms ruby/yjit 3.4.4
ruby 1.rb 526ms 4.3ms 12.9MB 507ms 3ms ruby 3.4.4
dart 1.dart 575ms 4.1ms 9.4MB 563ms 0ms dart/exe 3.8.1
ruby 1-m.rb 707ms 30ms 372.7MB 1240ms 147ms truffleruby 24.2.1

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 489ms 11ms 9.3MB 477ms 0ms dart/exe 3.8.1
ruby 1.rb 913ms 4.6ms 13.5MB 897ms 0ms ruby/yjit 3.4.4
ruby 1-m.rb 1253ms 6.5ms 411.5MB 1750ms 167ms truffleruby 24.2.1
ruby 1.rb 1478ms 32ms 12.9MB 1457ms 7ms ruby 3.4.4
dart 1.dart 1704ms 3.9ms 9.1MB 1690ms 3ms dart/exe 3.8.1

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 79ms 0.6ms 9.1MB 70ms 0ms dart/exe 3.8.1
dart 1.dart 119ms 2.5ms 8.6MB 110ms 0ms dart/exe 3.8.1
ruby 1.rb 198ms 2.3ms 13.5MB 180ms 10ms ruby/yjit 3.4.4
ruby 1.rb 289ms 3.7ms 12.8MB 270ms 7ms ruby 3.4.4
ruby 1-m.rb 530ms 42ms 354.3MB 1040ms 137ms truffleruby 24.2.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 338ms 1.4ms 63.8MB 317ms 27ms dart/exe 3.8.1
ruby 1-m.rb 4269ms 456ms 556.4MB 10877ms 377ms truffleruby 24.2.1
ruby 1.rb timeout 0.0ms 93.5MB 4947ms 40ms ruby 3.4.4
ruby 1.rb timeout 0.0ms 97.2MB 4933ms 50ms ruby/yjit 3.4.4

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 86ms 1.5ms 43.6MB 60ms 20ms dart/exe 3.8.1
ruby 1-m.rb 1985ms 41ms 547.4MB 5130ms 257ms truffleruby 24.2.1
ruby 1.rb 3266ms 10ms 38.3MB 3233ms 20ms ruby/yjit 3.4.4
ruby 1.rb 4383ms 23ms 37.6MB 4340ms 27ms ruby 3.4.4

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 407ms 3.2ms 6.3MB 397ms 0ms dart/exe 3.8.1
ruby 2.rb 835ms 11ms 315.3MB 1080ms 117ms truffleruby 24.2.1
ruby 2.rb timeout 0.0ms 12.8MB 4983ms 3ms ruby 3.4.4
ruby 2.rb timeout 0.0ms 13.5MB 4980ms 7ms ruby/yjit 3.4.4

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 46ms 0.8ms 6.3MB 37ms 0ms dart/exe 3.8.1
ruby 2-m.rb 323ms 13ms 309.9MB 563ms 123ms truffleruby 24.2.1
ruby 2.rb 1026ms 2.7ms 13.5MB 1007ms 7ms ruby/yjit 3.4.4
ruby 2.rb 2901ms 120ms 12.8MB 2887ms 0ms ruby 3.4.4

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb timeout 0.0ms 325.3MB 4850ms 137ms ruby 3.4.4
ruby 1.rb timeout 0.0ms 327.0MB 4857ms 130ms ruby/yjit 3.4.4
ruby 1.rb timeout 0.0ms 731.6MB 5057ms 170ms truffleruby 24.2.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1-m.rb 1708ms 13ms 494.0MB 2480ms 177ms truffleruby 24.2.1
ruby 1.rb 3451ms 53ms 131.8MB 3363ms 73ms ruby/yjit 3.4.4
ruby 1.rb 4587ms 13ms 131.1MB 4493ms 77ms ruby 3.4.4

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 1266ms 3.4ms 14.9MB 1237ms 30ms dart/exe 3.8.1
ruby 1.rb timeout 0.0ms 46.4MB 4923ms 63ms ruby 3.4.4
ruby 1.rb timeout 0.0ms 130.8MB 4903ms 83ms ruby/yjit 3.4.4
ruby 1.rb timeout 0.0ms 451.3MB 13403ms 393ms truffleruby 24.2.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 314ms 7.1ms 14.8MB 293ms 13ms dart/exe 3.8.1
ruby 1-m.rb 1666ms 261ms 414.4MB 4383ms 213ms truffleruby 24.2.1
ruby 1.rb 1783ms 63ms 130.9MB 1673ms 97ms ruby/yjit 3.4.4
ruby 1.rb 1814ms 58ms 130.3MB 1703ms 93ms ruby 3.4.4

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 3780ms 11ms 6.4MB 3770ms 0ms dart/exe 3.8.1
dart 2.dart 4939ms 15ms 6.4MB 4923ms 0ms dart/exe 3.8.1
ruby 4.rb timeout 0.0ms 12.9MB 4980ms 0ms ruby 3.4.4
ruby 4.rb timeout 0.0ms 13.5MB 4983ms 3ms ruby/yjit 3.4.4
ruby 4.rb timeout 0.0ms 449.5MB 5163ms 247ms truffleruby 24.2.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 944ms 3.1ms 6.3MB 933ms 0ms dart/exe 3.8.1
dart 2.dart 1249ms 10ms 6.3MB 1233ms 0ms dart/exe 3.8.1
ruby 4.rb 4909ms 38ms 442.4MB 5200ms 217ms truffleruby 24.2.1
ruby 4.rb timeout 0.0ms 12.9MB 4980ms 0ms ruby 3.4.4
ruby 4.rb timeout 0.0ms 13.5MB 4983ms 3ms ruby/yjit 3.4.4

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 238ms 0.3ms 6.3MB 230ms 0ms dart/exe 3.8.1
dart 2.dart 314ms 1.2ms 6.3MB 303ms 0ms dart/exe 3.8.1
ruby 4.rb 1458ms 5.9ms 388.7MB 1803ms 150ms truffleruby 24.2.1
ruby 4.rb timeout 0.0ms 12.9MB 4980ms 0ms ruby 3.4.4
ruby 4.rb timeout 0.0ms 13.6MB 4983ms 0ms ruby/yjit 3.4.4