Rust VS Dart benchmarks

Current benchmark data was generated on Wed May 25 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL 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 5-m.rs 166ms 1.3ms 2.3MB 287ms 0ms rustc 1.61.0
rust 5c-m.rs 175ms 6.6ms 1.2MB 297ms 0ms rustc 1.63.0
rust 1c.rs 191ms 3.2ms 0.7MB 180ms 0ms rustc 1.63.0
rust 1.rs 234ms 0.2ms 0.6MB 223ms 0ms rustc 1.61.0
dart 1.dart 470ms 1.3ms 21.8MB 457ms 3ms dart/exe 2.17.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1c.rs 24ms 1.7ms 0.6MB 13ms 0ms rustc 1.63.0
rust 5c-m.rs 26ms 1.8ms 1.3MB 27ms 0ms rustc 1.63.0
rust 5-m.rs 27ms 2.0ms 1.3MB 27ms 0ms rustc 1.61.0
rust 1.rs 27ms 1.1ms 1.9MB 20ms 0ms rustc 1.61.0
dart 1.dart 60ms 0.7ms 15.8MB 43ms 0ms dart/exe 2.17.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 2.2ms 0.6ms 2.0MB 0ms 0ms rustc 1.63.0
rust 1.rs 2.4ms 0.5ms 0.6MB 0ms 0ms rustc 1.61.0
dart 1.dart 8.6ms 1.9ms 13.6MB 0ms 0ms dart/exe 2.17.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 9.rs 362ms 2.1ms 4.9MB 350ms 0ms rustc 1.63.0
rust 8.rs 455ms 0.4ms 4.9MB 443ms 0ms rustc 1.61.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 9.rs 18ms 0.4ms 0.6MB 10ms 0ms rustc 1.63.0
rust 8.rs 22ms 0.8ms 0.6MB 10ms 0ms rustc 1.61.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 188ms 0.3ms 0.6MB 180ms 0ms rustc 1.61.0
rust 7-i.rs 276ms 22ms 0.6MB 263ms 0ms rustc 1.61.0
rust 3.rs 301ms 0.1ms 0.6MB 290ms 0ms rustc 1.63.0
rust 2.rs 337ms 0.4ms 0.6MB 330ms 0ms rustc 1.61.0
rust 1.rs 408ms 10ms 0.6MB 400ms 0ms rustc 1.61.0
dart 3.dart 620ms 3.1ms 13.9MB 607ms 0ms dart/exe 2.17.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 23ms 0.4ms 0.6MB 10ms 0ms rustc 1.61.0
rust 7-i.rs 27ms 0.1ms 0.6MB 20ms 0ms rustc 1.61.0
rust 3.rs 32ms 1.3ms 0.6MB 20ms 0ms rustc 1.63.0
rust 2.rs 36ms 2.0ms 0.6MB 30ms 0ms rustc 1.61.0
rust 1.rs 41ms 2.7ms 2.1MB 30ms 0ms rustc 1.61.0
dart 3.dart 70ms 1.3ms 13.8MB 57ms 0ms dart/exe 2.17.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 872ms 1.5ms 2.6MB 1613ms 3ms rustc 1.63.0
rust 7-m.rs 893ms 2.6ms 2.2MB 1717ms 0ms rustc 1.61.0
rust 8.rs 1518ms 1.1ms 2.5MB 1510ms 0ms rustc 1.63.0
rust 2-m.rs 1706ms 54ms 2.1MB 3290ms 7ms rustc 1.61.0
rust 7.rs 1722ms 3.0ms 2.2MB 1710ms 0ms rustc 1.61.0
dart 1.dart 4795ms 1.0ms 11.7MB 4783ms 0ms dart/exe 2.17.0
rust 2.rs timeout 0.0ms 0.0MB 0ms 0ms rustc 1.61.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 220ms 6.5ms 2.4MB 397ms 0ms rustc 1.63.0
rust 7-m.rs 233ms 1.5ms 0.7MB 423ms 0ms rustc 1.61.0
rust 7.rs 416ms 29ms 0.6MB 403ms 0ms rustc 1.61.0
rust 8.rs 432ms 0.5ms 2.2MB 420ms 0ms rustc 1.63.0
rust 2-m.rs 435ms 7.8ms 2.3MB 820ms 0ms rustc 1.61.0
dart 1.dart 1209ms 2.8ms 14.1MB 1193ms 0ms dart/exe 2.17.0
rust 2.rs 1371ms 0.7ms 0.6MB 1360ms 0ms rustc 1.61.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 60ms 1.7ms 2.3MB 100ms 0ms rustc 1.63.0
rust 7-m.rs 64ms 0.6ms 0.7MB 100ms 0ms rustc 1.61.0
rust 7.rs 103ms 7.6ms 0.6MB 93ms 0ms rustc 1.61.0
rust 8.rs 107ms 6.1ms 2.2MB 97ms 0ms rustc 1.63.0
rust 2-m.rs 115ms 3.3ms 0.7MB 200ms 0ms rustc 1.61.0
dart 1.dart 311ms 1.5ms 13.9MB 293ms 0ms dart/exe 2.17.0
rust 2.rs 391ms 0.6ms 0.6MB 380ms 0ms rustc 1.61.0

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1435ms 15ms 85.9MB 1410ms 47ms dart/exe 2.17.0
rust 4.rs 1628ms 114ms 33.8MB 1600ms 10ms rustc 1.61.0
rust 5.rs 1902ms 27ms 33.9MB 1867ms 17ms rustc 1.61.0
rust 3.rs 1939ms 119ms 49.8MB 1910ms 13ms rustc 1.61.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 134ms 1.6ms 51.1MB 110ms 20ms dart/exe 2.17.0
rust 4.rs 138ms 1.4ms 5.7MB 120ms 0ms rustc 1.61.0
rust 3.rs 166ms 0.5ms 7.7MB 153ms 0ms rustc 1.61.0
rust 5.rs 168ms 1.0ms 5.7MB 160ms 0ms rustc 1.61.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-m.rs 915ms 27ms 6.3MB 1760ms 17ms rustc 1.61.0
rust 5-m.rs 1033ms 130ms 5.7MB 1983ms 30ms rustc 1.61.0
rust 3.rs 1831ms 4.5ms 6.5MB 1777ms 37ms rustc 1.61.0
rust 4.rs 3182ms 1.1ms 4.5MB 3170ms 0ms rustc 1.61.0
rust 1-m.rs 3399ms 14ms 5.8MB 6590ms 83ms rustc 1.61.0
dart 1.dart timeout 0.0ms 0.0MB 0ms 0ms dart/exe 2.17.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-m.rs 85ms 15ms 3.0MB 137ms 7ms rustc 1.61.0
rust 3.rs 113ms 0.3ms 3.1MB 100ms 0ms rustc 1.61.0
rust 5-m.rs 120ms 13ms 3.2MB 200ms 0ms rustc 1.61.0
rust 4.rs 208ms 0.2ms 2.7MB 200ms 0ms rustc 1.61.0
rust 1-m.rs 234ms 2.8ms 2.8MB 427ms 7ms rustc 1.61.0
dart 1.dart 1522ms 7.0ms 225.4MB 1410ms 197ms dart/exe 2.17.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 129ms 10ms 3.6MB 117ms 0ms rustc 1.61.0
rust 2.rs 538ms 2.3ms 3.6MB 527ms 0ms rustc 1.61.0
dart 1.dart timeout 0.0ms 0.0MB 0ms 0ms dart/exe 2.17.0

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 38ms 0.8ms 2.9MB 30ms 0ms rustc 1.61.0
rust 2.rs 89ms 1.0ms 3.3MB 77ms 0ms rustc 1.61.0
dart 1.dart 1781ms 5.8ms 45.3MB 1747ms 23ms dart/exe 2.17.0

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-im.rs 614ms 0.3ms 0.7MB 1183ms 0ms rustc 1.61.0
rust 2-im.rs 952ms 10.0ms 0.7MB 1840ms 0ms rustc 1.61.0
rust 5-m.rs 1115ms 2.2ms 0.7MB 2110ms 0ms rustc 1.61.0
rust 3-i.rs 1206ms 0.8ms 0.6MB 1200ms 0ms rustc 1.61.0
rust 2-i.rs 1674ms 0.6ms 0.6MB 1657ms 0ms rustc 1.61.0
rust 1-m.rs 2129ms 3.7ms 0.7MB 4100ms 3ms rustc 1.61.0
rust 1.rs 3896ms 25ms 0.6MB 3880ms 0ms rustc 1.61.0
dart 2.dart 4557ms 1.2ms 13.8MB 4540ms 0ms dart/exe 2.17.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-im.rs 63ms 1.8ms 0.7MB 100ms 0ms rustc 1.61.0
rust 2-im.rs 90ms 1.7ms 2.0MB 150ms 0ms rustc 1.61.0
rust 5-m.rs 99ms 3.9ms 0.6MB 170ms 0ms rustc 1.61.0
rust 3-i.rs 103ms 1.3ms 0.6MB 90ms 0ms rustc 1.61.0
rust 2-i.rs 143ms 1.4ms 0.6MB 130ms 0ms rustc 1.61.0
rust 1-m.rs 192ms 0.8ms 0.7MB 337ms 0ms rustc 1.61.0
rust 1.rs 312ms 22ms 0.6MB 300ms 0ms rustc 1.61.0
dart 2.dart 368ms 0.6ms 11.9MB 353ms 0ms dart/exe 2.17.0

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 216ms 54ms 47.0MB 120ms 130ms rustc 1.61.0
rust 2-m.rs 557ms 7.6ms 114.0MB 317ms 557ms rustc 1.61.0
rust 1-http2.rs 814ms 173ms 81.0MB 937ms 413ms rustc 1.61.0
dart 1.dart 3989ms 47ms 106.6MB 1337ms 760ms dart/exe 2.17.0
rust 2-http2.rs timeout 0.0ms 0.0MB 0ms 0ms rustc 1.61.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 75ms 19ms 15.7MB 27ms 23ms rustc 1.61.0
rust 2.rs 135ms 13ms 29.9MB 33ms 103ms rustc 1.61.0
rust 2-http2.rs 292ms 30ms 28.7MB 400ms 87ms rustc 1.61.0
rust 1-http2.rs 365ms 5.4ms 28.5MB 520ms 103ms rustc 1.61.0
dart 1.dart 1680ms 308ms 56.2MB 190ms 143ms dart/exe 2.17.0

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3.rs 82ms 0.4ms 36.4MB 57ms 10ms rustc 1.61.0
rust 2.rs 88ms 4.3ms 38.1MB 60ms 13ms rustc 1.61.0
rust 1.rs 145ms 8.0ms 75.5MB 97ms 33ms rustc 1.61.0
dart 1.dart 294ms 3.8ms 57.6MB 267ms 20ms dart/exe 2.17.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3.rs 491ms 0.6ms 258.3MB 383ms 90ms rustc 1.61.0
rust 2.rs 492ms 1.3ms 258.4MB 370ms 103ms rustc 1.61.0
rust 1.rs 918ms 44ms 605.1MB 637ms 260ms rustc 1.61.0
dart 1.dart 2374ms 2.5ms 277.2MB 2430ms 167ms dart/exe 2.17.0

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 360ms 6.6ms 28.2MB 633ms 10ms rustc 1.61.0
rust 8.rs 637ms 8.6ms 23.9MB 610ms 13ms rustc 1.61.0
dart 3-m.dart 3142ms 122ms 241.8MB 5380ms 127ms dart/exe 2.17.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 50ms 3.4ms 16.1MB 63ms 7ms rustc 1.61.0
rust 8.rs 75ms 3.8ms 11.6MB 53ms 10ms rustc 1.61.0
dart 3-m.dart 497ms 7.4ms 193.8MB 747ms 107ms dart/exe 2.17.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0-unsafe.rs 59ms 7.6ms 0.6MB 47ms 0ms rustc 1.61.0
rust 1.rs 77ms 12ms 2.1MB 70ms 0ms rustc 1.61.0
dart 2.dart 235ms 1.4ms 41.6MB 203ms 13ms dart/exe 2.17.0
dart 1.dart 1062ms 0.5ms 44.4MB 1033ms 17ms dart/exe 2.17.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0-unsafe.rs 204ms 28ms 0.6MB 193ms 0ms rustc 1.61.0
rust 1.rs 285ms 29ms 2.2MB 277ms 0ms rustc 1.61.0
dart 2.dart 648ms 1.1ms 42.7MB 620ms 17ms dart/exe 2.17.0
dart 1.dart 3126ms 1.8ms 44.4MB 3097ms 13ms dart/exe 2.17.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0-unsafe.rs 32ms 0.5ms 0.6MB 20ms 0ms rustc 1.61.0
rust 1.rs 40ms 0.9ms 0.7MB 30ms 0ms rustc 1.61.0
dart 2.dart 106ms 0.4ms 20.8MB 87ms 7ms dart/exe 2.17.0
dart 1.dart 196ms 0.1ms 46.4MB 167ms 13ms dart/exe 2.17.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 680ms 2.3ms 68.7MB 663ms 27ms dart/exe 2.17.0
rust 1.rs 817ms 1.1ms 33.8MB 787ms 10ms rustc 1.61.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 164ms 4.4ms 50.7MB 137ms 17ms dart/exe 2.17.0
rust 1.rs 167ms 1.9ms 9.9MB 153ms 0ms rustc 1.61.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 460ms 2.0ms 6.6MB 440ms 0ms rustc 1.61.0
rust 1.rs 1182ms 8.4ms 40.9MB 1157ms 7ms rustc 1.61.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 105ms 1.2ms 3.2MB 90ms 0ms rustc 1.61.0
rust 1.rs 127ms 0.8ms 11.7MB 110ms 0ms rustc 1.61.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 1740ms 1.0ms 2.9MB 1573ms 147ms rustc 1.61.0
rust 2.rs 1804ms 7.3ms 2.7MB 1733ms 60ms rustc 1.61.0
dart 2.dart 1869ms 18ms 20.2MB 1870ms 43ms dart/exe 2.17.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 375ms 1.1ms 2.7MB 353ms 7ms rustc 1.61.0
rust 2.rs 408ms 1.2ms 2.5MB 400ms 0ms rustc 1.61.0
dart 2.dart 448ms 15ms 20.4MB 427ms 17ms dart/exe 2.17.0

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 7.rs 534ms 33ms 77.5MB 703ms 20ms rustc 1.61.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 7.rs 58ms 0.7ms 11.8MB 63ms 0ms rustc 1.61.0

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0.rs 126ms 8.2ms 0.7MB 117ms 0ms rustc 1.61.0
rust 1.rs 1769ms 116ms 0.7MB 1757ms 0ms rustc 1.61.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 0.rs 36ms 0.6ms 0.7MB 27ms 0ms rustc 1.61.0
rust 1.rs 462ms 0.7ms 0.6MB 450ms 0ms rustc 1.61.0