Rust VS Dart benchmarks

Current benchmark data was generated on Wed Feb 08 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz (Model 85)

* -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.)

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 5c-m.rs 212ms 1.9ms 1.7MB 370ms 7ms rustc 1.69.0-nightly
rust 5-m.rs 224ms 5.8ms 1.7MB 400ms 0ms rustc 1.67.0
rust 1c.rs 257ms 0.4ms 1.0MB 247ms 0ms rustc 1.69.0-nightly
rust 1.rs 314ms 1.1ms 1.0MB 307ms 0ms rustc 1.67.0
dart 1.dart 587ms 19ms 15.9MB 570ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 626ms 2.3ms 16.8MB 607ms 0ms dart/exe 2.19.2

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1c.rs 29ms 0.8ms 1.0MB 20ms 0ms rustc 1.69.0-nightly
rust 5-m.rs 32ms 0.5ms 1.7MB 40ms 0ms rustc 1.67.0
rust 5c-m.rs 33ms 3.0ms 1.7MB 37ms 3ms rustc 1.69.0-nightly
rust 1.rs 35ms 2.0ms 1.0MB 23ms 0ms rustc 1.67.0
dart 1.dart 74ms 3.5ms 15.0MB 57ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 76ms 1.9ms 16.4MB 63ms 0ms dart/exe 2.19.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 2.5ms 0.6ms 1.9MB 0ms 0ms rustc 1.67.0
rust 1.rs 2.6ms 0.8ms 1.0MB 0ms 0ms rustc 1.69.0-nightly
dart 1.dart 8.4ms 0.3ms 12.2MB 0ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 611ms 547ms 13.4MB 0ms 0ms dart/exe 2.19.2

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 9.rs 435ms 4.1ms 4.9MB 423ms 0ms rustc 1.69.0-nightly
rust 8.rs 512ms 3.2ms 4.9MB 497ms 0ms rustc 1.67.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 9.rs 20ms 0.1ms 1.0MB 10ms 0ms rustc 1.69.0-nightly
rust 8.rs 25ms 1.2ms 1.0MB 13ms 0ms rustc 1.67.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 255ms 0.3ms 1.0MB 237ms 0ms rustc 1.67.0
rust 7-i.rs 376ms 6.0ms 1.0MB 363ms 0ms rustc 1.67.0
rust 3.rs 404ms 0.9ms 1.1MB 390ms 0ms rustc 1.69.0-nightly
rust 2.rs 446ms 30ms 1.1MB 433ms 0ms rustc 1.67.0
rust 1.rs 503ms 8.7ms 1.1MB 490ms 0ms rustc 1.67.0
dart 3.dart 736ms 6.8ms 13.9MB 717ms 0ms dart/exe 3.0.0-187.0.dev
dart 3.dart 742ms 4.1ms 13.8MB 720ms 0ms dart/exe 2.19.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 29ms 0.5ms 1.0MB 20ms 0ms rustc 1.67.0
rust 7-i.rs 41ms 0.3ms 1.0MB 30ms 0ms rustc 1.67.0
rust 3.rs 43ms 0.1ms 1.0MB 30ms 0ms rustc 1.69.0-nightly
rust 2.rs 45ms 0.5ms 1.0MB 37ms 0ms rustc 1.67.0
rust 1.rs 55ms 4.2ms 1.0MB 43ms 0ms rustc 1.67.0
dart 3.dart 85ms 0.6ms 12.1MB 70ms 0ms dart/exe 2.19.2
dart 3.dart 86ms 2.4ms 11.5MB 70ms 0ms dart/exe 3.0.0-187.0.dev

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 1083ms 2.6ms 2.5MB 2073ms 3ms rustc 1.69.0-nightly
rust 7-m.rs 1085ms 14ms 2.1MB 2083ms 0ms rustc 1.67.0
rust 8.rs 2075ms 12ms 2.4MB 2067ms 0ms rustc 1.69.0-nightly
rust 7.rs 2099ms 40ms 2.2MB 2080ms 0ms rustc 1.67.0
rust 2-m.rs 2234ms 16ms 2.3MB 4307ms 3ms rustc 1.67.0
dart 1.dart timeout 0.0ms 11.8MB 4980ms 0ms dart/exe 2.19.2
dart 1.dart timeout 0.0ms 14.0MB 4980ms 0ms dart/exe 3.0.0-187.0.dev
rust 2.rs timeout 0.0ms 2.0MB 4987ms 0ms rustc 1.67.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 7-m.rs 280ms 0.9ms 1.1MB 513ms 0ms rustc 1.67.0
rust 8-m.rs 280ms 2.6ms 2.2MB 510ms 0ms rustc 1.69.0-nightly
rust 7.rs 523ms 1.8ms 1.1MB 510ms 0ms rustc 1.67.0
rust 2-m.rs 561ms 0.8ms 2.1MB 1063ms 0ms rustc 1.67.0
rust 8.rs 565ms 14ms 2.1MB 553ms 0ms rustc 1.69.0-nightly
dart 1.dart 1455ms 14ms 12.4MB 1437ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 1702ms 37ms 13.7MB 1680ms 0ms dart/exe 2.19.2
rust 2.rs 1966ms 23ms 1.0MB 1950ms 0ms rustc 1.67.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 77ms 1.9ms 1.1MB 127ms 0ms rustc 1.69.0-nightly
rust 7-m.rs 79ms 1.6ms 1.0MB 123ms 0ms rustc 1.67.0
rust 8.rs 137ms 2.1ms 1.1MB 123ms 0ms rustc 1.69.0-nightly
rust 7.rs 138ms 2.1ms 1.1MB 130ms 0ms rustc 1.67.0
rust 2-m.rs 151ms 2.4ms 1.0MB 267ms 0ms rustc 1.67.0
dart 1.dart 372ms 5.1ms 13.9MB 353ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 439ms 18ms 13.9MB 423ms 0ms dart/exe 2.19.2
rust 2.rs 491ms 0.1ms 1.0MB 480ms 0ms rustc 1.67.0

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1302ms 18ms 85.4MB 1263ms 43ms dart/exe 2.19.2
dart 1.dart 1362ms 1.6ms 86.0MB 1327ms 43ms dart/exe 3.0.0-187.0.dev
rust 4.rs 2015ms 13ms 33.7MB 1983ms 13ms rustc 1.67.0
rust 5.rs 2208ms 16ms 33.7MB 2180ms 13ms rustc 1.67.0
rust 3.rs 2379ms 46ms 49.8MB 2343ms 17ms rustc 1.67.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 123ms 2.4ms 47.9MB 97ms 17ms dart/exe 2.19.2
dart 1.dart 129ms 2.0ms 47.6MB 97ms 23ms dart/exe 3.0.0-187.0.dev
rust 4.rs 179ms 1.1ms 5.7MB 170ms 0ms rustc 1.67.0
rust 5.rs 200ms 2.5ms 5.8MB 183ms 0ms rustc 1.67.0
rust 3.rs 211ms 2.3ms 7.7MB 190ms 0ms rustc 1.67.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-m.rs 1161ms 4.4ms 6.2MB 2220ms 23ms rustc 1.67.0
rust 5-m.rs 1222ms 11ms 4.4MB 2347ms 30ms rustc 1.67.0
rust 3.rs 2254ms 3.6ms 6.2MB 2200ms 37ms rustc 1.67.0
rust 4.rs 3557ms 11ms 4.5MB 3540ms 0ms rustc 1.67.0
rust 1-m.rs 3918ms 52ms 4.9MB 7567ms 110ms rustc 1.67.0
dart 1.dart timeout 0.0ms 23.7MB 4880ms 93ms dart/exe 2.19.2
dart 1.dart timeout 0.0ms 26.1MB 4900ms 60ms dart/exe 3.0.0-187.0.dev

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-m.rs 105ms 17ms 2.9MB 173ms 7ms rustc 1.67.0
rust 3.rs 140ms 0.7ms 3.2MB 127ms 0ms rustc 1.67.0
rust 5-m.rs 141ms 26ms 2.7MB 243ms 7ms rustc 1.67.0
rust 4.rs 235ms 1.7ms 2.3MB 223ms 0ms rustc 1.67.0
rust 1-m.rs 271ms 6.3ms 2.9MB 480ms 13ms rustc 1.67.0
dart 1.dart 563ms 14ms 15.8MB 527ms 17ms dart/exe 2.19.2
dart 1.dart 623ms 37ms 16.0MB 567ms 20ms dart/exe 3.0.0-187.0.dev

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 165ms 0.5ms 3.6MB 150ms 0ms rustc 1.67.0
rust 2.rs 685ms 1.5ms 3.8MB 673ms 0ms rustc 1.67.0
dart 1.dart timeout 0.0ms 22.1MB 4977ms 10ms dart/exe 2.19.2
dart 1.dart timeout 0.0ms 21.5MB 4977ms 10ms dart/exe 3.0.0-187.0.dev

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 46ms 0.8ms 2.9MB 37ms 0ms rustc 1.67.0
rust 2.rs 133ms 0.6ms 3.1MB 120ms 0ms rustc 1.67.0
dart 1.dart 2024ms 15ms 17.2MB 2000ms 17ms dart/exe 2.19.2
dart 1.dart 2061ms 26ms 15.9MB 2017ms 23ms dart/exe 3.0.0-187.0.dev

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-im.rs 750ms 1.1ms 1.0MB 1453ms 0ms rustc 1.67.0
rust 2-im.rs 1071ms 12ms 1.0MB 2070ms 0ms rustc 1.67.0
rust 5-m.rs 1427ms 22ms 1.1MB 2730ms 0ms rustc 1.67.0
rust 3-i.rs 1492ms 23ms 1.0MB 1473ms 0ms rustc 1.67.0
rust 2-i.rs 2205ms 4.9ms 1.0MB 2193ms 0ms rustc 1.67.0
rust 1-m.rs 2866ms 4.7ms 1.0MB 5527ms 0ms rustc 1.67.0
rust 1.rs 4707ms 34ms 1.0MB 4693ms 0ms rustc 1.67.0
dart 2.dart timeout 0.0ms 12.5MB 4977ms 0ms dart/exe 2.19.2
dart 2.dart timeout 0.0ms 13.8MB 4980ms 0ms dart/exe 3.0.0-187.0.dev

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-im.rs 70ms 0.7ms 1.0MB 117ms 0ms rustc 1.67.0
rust 2-im.rs 100ms 3.0ms 1.1MB 170ms 0ms rustc 1.67.0
rust 5-m.rs 125ms 1.7ms 1.0MB 220ms 0ms rustc 1.67.0
rust 3-i.rs 126ms 0.8ms 1.1MB 117ms 0ms rustc 1.67.0
rust 2-i.rs 191ms 8.6ms 1.1MB 183ms 0ms rustc 1.67.0
rust 1-m.rs 258ms 4.6ms 1.1MB 453ms 3ms rustc 1.67.0
rust 1.rs 394ms 1.2ms 1.1MB 383ms 0ms rustc 1.67.0
dart 2.dart 417ms 1.6ms 11.8MB 403ms 0ms dart/exe 2.19.2
dart 2.dart 461ms 12ms 11.3MB 443ms 0ms dart/exe 3.0.0-187.0.dev

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 180ms 40ms 31.1MB 103ms 113ms rustc 1.67.0
rust 2-http2.rs 476ms 145ms 45.3MB 680ms 150ms rustc 1.67.0
rust 2-m.rs 614ms 14ms 105.6MB 340ms 603ms rustc 1.67.0
rust 1-http2.rs 1093ms 130ms 68.5MB 1283ms 613ms rustc 1.67.0
dart 2.dart 1722ms 62ms 117.3MB 1190ms 827ms dart/exe 3.0.0-187.0.dev
dart 2.dart 2468ms 594ms 117.7MB 1207ms 857ms dart/exe 2.19.2
dart 1.dart 3909ms 101ms 105.2MB 1263ms 757ms dart/exe 2.19.2
dart 1.dart 3920ms 84ms 104.3MB 1210ms 773ms dart/exe 3.0.0-187.0.dev

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 65ms 31ms 14.1MB 10ms 40ms rustc 1.67.0
rust 2.rs 137ms 5.4ms 22.4MB 30ms 107ms rustc 1.67.0
dart 2.dart 302ms 13ms 55.2MB 187ms 170ms dart/exe 3.0.0-187.0.dev
dart 2.dart 302ms 9.1ms 57.0MB 200ms 170ms dart/exe 2.19.2
rust 2-http2.rs 353ms 76ms 22.7MB 487ms 107ms rustc 1.67.0
rust 1-http2.rs 457ms 18ms 25.5MB 650ms 127ms rustc 1.67.0
dart 1.dart 1696ms 318ms 54.4MB 187ms 143ms dart/exe 3.0.0-187.0.dev
dart 1.dart 2849ms 641ms 54.1MB 217ms 143ms dart/exe 2.19.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 96ms 3.0ms 38.1MB 70ms 10ms rustc 1.67.0
rust 3.rs 96ms 2.4ms 36.2MB 73ms 10ms rustc 1.67.0
rust 1.rs 154ms 1.7ms 75.4MB 100ms 40ms rustc 1.67.0
dart 1.dart 353ms 5.0ms 60.0MB 323ms 20ms dart/exe 2.19.2
dart 1.dart 358ms 16ms 57.4MB 317ms 30ms dart/exe 3.0.0-187.0.dev

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 598ms 0.3ms 257.9MB 460ms 120ms rustc 1.67.0
rust 3.rs 611ms 20ms 258.6MB 460ms 137ms rustc 1.67.0
rust 1.rs 1117ms 11ms 605.2MB 760ms 340ms rustc 1.67.0
dart 1.dart 2630ms 4.5ms 300.5MB 2700ms 140ms dart/exe 2.19.2
dart 1.dart 2700ms 8.4ms 301.4MB 2773ms 133ms dart/exe 3.0.0-187.0.dev

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 422ms 12ms 28.2MB 733ms 17ms rustc 1.67.0
rust 8.rs 743ms 40ms 23.3MB 710ms 13ms rustc 1.67.0
dart 3-m.dart 3627ms 75ms 283.4MB 6467ms 117ms dart/exe 3.0.0-187.0.dev
dart 3-m.dart 3661ms 88ms 255.4MB 6563ms 120ms dart/exe 2.19.2

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 57ms 1.0ms 15.7MB 77ms 3ms rustc 1.67.0
rust 8.rs 88ms 3.3ms 11.6MB 70ms 7ms rustc 1.67.0
dart 3-m.dart 553ms 21ms 199.6MB 880ms 87ms dart/exe 2.19.2
dart 3-m.dart 559ms 21ms 200.4MB 877ms 87ms dart/exe 3.0.0-187.0.dev

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0-unsafe.rs 65ms 6.5ms 1.8MB 57ms 0ms rustc 1.67.0
rust 1.rs 90ms 3.6ms 2.1MB 80ms 0ms rustc 1.67.0
dart 2.dart 281ms 2.9ms 16.5MB 263ms 3ms dart/exe 3.0.0-187.0.dev
dart 2.dart 286ms 8.5ms 14.4MB 263ms 3ms dart/exe 2.19.2
dart 1.dart 1267ms 4.7ms 16.6MB 1250ms 3ms dart/exe 2.19.2
dart 1.dart 1274ms 2.8ms 17.0MB 1257ms 0ms dart/exe 3.0.0-187.0.dev

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0-unsafe.rs 258ms 14ms 1.1MB 243ms 0ms rustc 1.67.0
rust 1.rs 369ms 2.5ms 1.0MB 360ms 0ms rustc 1.67.0
dart 2.dart 803ms 10ms 15.1MB 783ms 3ms dart/exe 2.19.2
dart 2.dart 806ms 1.9ms 14.6MB 790ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 3800ms 8.6ms 15.9MB 3780ms 3ms dart/exe 2.19.2
dart 1.dart 3805ms 20ms 16.7MB 3783ms 3ms dart/exe 3.0.0-187.0.dev

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0-unsafe.rs 40ms 2.7ms 1.1MB 30ms 0ms rustc 1.67.0
rust 1.rs 60ms 1.7ms 1.0MB 50ms 0ms rustc 1.67.0
dart 2.dart 131ms 2.5ms 15.3MB 113ms 3ms dart/exe 3.0.0-187.0.dev
dart 2.dart 134ms 2.0ms 14.8MB 117ms 0ms dart/exe 2.19.2
dart 1.dart 216ms 6.6ms 14.6MB 200ms 3ms dart/exe 2.19.2
dart 1.dart 223ms 8.0ms 14.7MB 200ms 7ms dart/exe 3.0.0-187.0.dev

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 638ms 10ms 69.2MB 600ms 37ms dart/exe 2.19.2
dart 1.dart 641ms 4.2ms 70.8MB 603ms 43ms dart/exe 3.0.0-187.0.dev
rust 1.rs 1082ms 5.4ms 33.7MB 1050ms 17ms rustc 1.67.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 159ms 3.9ms 48.5MB 127ms 23ms dart/exe 3.0.0-187.0.dev
dart 1.dart 161ms 7.6ms 50.8MB 130ms 20ms dart/exe 2.19.2
rust 1.rs 226ms 4.6ms 9.9MB 207ms 0ms rustc 1.67.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 497ms 1.2ms 6.6MB 480ms 0ms rustc 1.67.0
rust 1.rs 1080ms 27ms 40.8MB 1050ms 13ms rustc 1.67.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 111ms 0.5ms 3.1MB 100ms 0ms rustc 1.67.0
rust 1.rs 147ms 6.8ms 11.6MB 133ms 0ms rustc 1.67.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 1892ms 32ms 19.5MB 1820ms 53ms dart/exe 3.0.0-187.0.dev
rust 2.rs 1979ms 8.1ms 2.7MB 1890ms 73ms rustc 1.67.0
rust 1.rs 2064ms 22ms 2.8MB 1870ms 173ms rustc 1.67.0
dart 2.dart 2080ms 11ms 21.7MB 2023ms 43ms dart/exe 2.19.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 441ms 3.4ms 2.4MB 423ms 0ms rustc 1.67.0
rust 2.rs 459ms 11ms 2.5MB 447ms 0ms rustc 1.67.0
dart 2.dart 471ms 4.6ms 22.0MB 420ms 33ms dart/exe 3.0.0-187.0.dev
dart 2.dart 534ms 23ms 20.2MB 483ms 33ms dart/exe 2.19.2

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 7.rs 672ms 6.4ms 77.6MB 867ms 30ms rustc 1.67.0
dart 1.dart timeout 0.0ms 103.2MB 4937ms 37ms dart/exe 2.19.2
dart 1.dart timeout 0.0ms 103.9MB 4940ms 30ms dart/exe 3.0.0-187.0.dev

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 7.rs 74ms 3.0ms 11.6MB 87ms 0ms rustc 1.67.0
dart 1.dart 825ms 3.8ms 55.9MB 793ms 17ms dart/exe 3.0.0-187.0.dev
dart 1.dart 860ms 27ms 55.6MB 823ms 17ms dart/exe 2.19.2

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0.rs 164ms 0.4ms 1.1MB 153ms 0ms rustc 1.67.0
rust 1.rs 2258ms 26ms 1.1MB 2243ms 0ms rustc 1.67.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0.rs 45ms 1.5ms 1.1MB 33ms 0ms rustc 1.67.0
rust 1.rs 559ms 2.7ms 1.1MB 550ms 0ms rustc 1.67.0