Dart VS Go benchmarks

Current benchmark data was generated on Mon Feb 06 2023, 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1234ms 8.4ms 86.2MB 1207ms 33ms dart/exe 2.19.1
dart 1.dart 1267ms 28ms 88.1MB 1227ms 43ms dart/exe 3.0.0-187.0.dev
go 1.go 3238ms 18ms 44.6MB 4600ms 63ms go 1.19.5
go 1.go 4368ms 14ms 39.4MB 4343ms 10ms tinygo 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 113ms 2.2ms 47.9MB 80ms 23ms dart/exe 2.19.1
dart 1.dart 117ms 2.7ms 47.5MB 93ms 17ms dart/exe 3.0.0-187.0.dev
go 1.go 277ms 2.4ms 8.2MB 353ms 10ms go 1.19.5
go 1.go 391ms 3.0ms 6.6MB 383ms 0ms tinygo 0.25.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-m.go 909ms 184ms 13.4MB 1750ms 3ms go 1.19.5
go 1.go 2254ms 7.2ms 253.7MB 2167ms 67ms tinygo 0.25.0
dart 1.dart timeout 0.0ms 24.4MB 4910ms 73ms dart/exe 2.19.1
dart 1.dart timeout 0.0ms 26.0MB 4907ms 73ms dart/exe 3.0.0-187.0.dev

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-m.go 64ms 6.1ms 5.4MB 103ms 0ms go 1.19.5
go 1.go 306ms 2.0ms 65.6MB 277ms 13ms tinygo 0.25.0
dart 1.dart 557ms 1.1ms 15.8MB 523ms 20ms dart/exe 2.19.1
dart 1.dart 576ms 5.7ms 16.0MB 550ms 10ms 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
go 1.go 168ms 3.0ms 8.3MB 153ms 3ms go 1.19.5
dart 1.dart timeout 0.0ms 22.2MB 4967ms 13ms dart/exe 2.19.1
dart 1.dart timeout 0.0ms 21.6MB 4980ms 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
go 1.go 49ms 0.9ms 8.9MB 37ms 0ms go 1.19.5
dart 1.dart 1738ms 0.8ms 16.0MB 1707ms 23ms dart/exe 2.19.1
dart 1.dart 1746ms 3.0ms 15.4MB 1713ms 27ms 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
go 3-m.go 1212ms 0.4ms 5.0MB 2333ms 7ms go 1.19.5
go 3.go 2703ms 0.7ms 50.0MB 2677ms 7ms tinygo 0.25.0
dart 2.dart 4275ms 2.1ms 13.6MB 4263ms 0ms dart/exe 2.19.1
dart 2.dart 4701ms 1.9ms 13.9MB 4683ms 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
go 3.go 129ms 1.8ms 5.0MB 187ms 3ms go 1.19.5
go 3.go 299ms 0.2ms 48.6MB 273ms 10ms tinygo 0.25.0
dart 2.dart 347ms 1.2ms 12.1MB 330ms 0ms dart/exe 2.19.1
dart 2.dart 380ms 1.0ms 12.0MB 363ms 0ms dart/exe 3.0.0-187.0.dev

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3-m.go 209ms 0.6ms 2.9MB 373ms 0ms go 1.19.5
dart 1.dart 485ms 0.5ms 14.7MB 470ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 524ms 1.4ms 14.1MB 503ms 0ms dart/exe 2.19.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3.go 29ms 1.6ms 2.9MB 33ms 0ms go 1.19.5
dart 1.dart 60ms 0.5ms 14.9MB 47ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 65ms 1.6ms 16.4MB 50ms 0ms dart/exe 2.19.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 2.2ms 0.5ms 2.0MB 0ms 0ms tinygo 0.25.0
go 1.go 2.6ms 0.2ms 3.3MB 0ms 0ms go 1.19.5
dart 1.dart 8.0ms 0.2ms 11.4MB 0ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 608ms 548ms 12.1MB 0ms 0ms dart/exe 2.19.1

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-http2.go 193ms 7.2ms 54.4MB 277ms 60ms go 1.19.5
go 2-m.go 688ms 22ms 170.2MB 600ms 493ms go 1.19.5
go 1-m.go 710ms 40ms 175.9MB 710ms 427ms go 1.19.5
dart 2.dart 1808ms 68ms 116.8MB 1090ms 810ms dart/exe 3.0.0-187.0.dev
dart 2.dart 1852ms 447ms 118.6MB 1057ms 823ms dart/exe 2.19.1
dart 1.dart 3799ms 82ms 114.6MB 1190ms 687ms dart/exe 3.0.0-187.0.dev
dart 1.dart 3829ms 50ms 107.7MB 1100ms 623ms dart/exe 2.19.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-http2.go 48ms 3.3ms 24.8MB 50ms 10ms go 1.19.5
go 2.go 141ms 9.7ms 39.4MB 103ms 73ms go 1.19.5
go 1.go 149ms 17ms 38.9MB 103ms 70ms go 1.19.5
dart 2.dart 264ms 9.5ms 55.0MB 183ms 143ms dart/exe 2.19.1
dart 2.dart 295ms 5.7ms 56.6MB 193ms 140ms dart/exe 3.0.0-187.0.dev
dart 1.dart 1492ms 130ms 55.6MB 177ms 107ms dart/exe 2.19.1
dart 1.dart 1679ms 308ms 55.7MB 170ms 130ms dart/exe 3.0.0-187.0.dev

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 2-ffi.go 80ms 2.9ms 41.7MB 57ms 17ms go 1.19.5
go 1.go 182ms 1.9ms 18.6MB 167ms 7ms go 1.19.5
dart 1.dart 298ms 2.6ms 58.8MB 270ms 17ms dart/exe 2.19.1
dart 1.dart 304ms 5.1ms 59.1MB 273ms 17ms 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
go 2-ffi.go 407ms 13ms 164.0MB 380ms 97ms go 1.19.5
go 1.go 1073ms 7.2ms 103.6MB 1047ms 60ms go 1.19.5
dart 1.dart 2233ms 7.1ms 300.2MB 2287ms 130ms dart/exe 2.19.1
dart 1.dart 2312ms 3.3ms 300.6MB 2360ms 130ms 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
go 7-m.go 1422ms 15ms 41.6MB 2607ms 33ms go 1.19.5
dart 3-m.dart 2759ms 53ms 254.5MB 4833ms 117ms dart/exe 2.19.1
dart 3-m.dart 4006ms 128ms 283.8MB 7067ms 117ms 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
go 7-m.go 241ms 4.9ms 23.9MB 353ms 23ms go 1.19.5
dart 3-m.dart 446ms 13ms 198.6MB 680ms 83ms dart/exe 2.19.1
dart 3-m.dart 566ms 15ms 200.6MB 913ms 77ms 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
go 3.go 161ms 1.4ms 0.3MB 150ms 0ms tinygo 0.25.0
go 3.go 168ms 1.8ms 2.9MB 160ms 0ms go 1.19.5
dart 2.dart 236ms 1.7ms 15.3MB 223ms 0ms dart/exe 3.0.0-187.0.dev
dart 2.dart 237ms 1.2ms 17.0MB 213ms 7ms dart/exe 2.19.1
dart 1.dart 1064ms 2.3ms 14.7MB 1040ms 10ms dart/exe 2.19.1
dart 1.dart 1077ms 0.2ms 16.5MB 1053ms 7ms 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
go 3.go 475ms 1.0ms 0.3MB 463ms 0ms tinygo 0.25.0
go 3.go 495ms 1.0ms 4.8MB 480ms 0ms go 1.19.5
dart 2.dart 678ms 1.6ms 16.8MB 657ms 3ms dart/exe 3.0.0-187.0.dev
dart 2.dart 683ms 13ms 14.2MB 663ms 3ms dart/exe 2.19.1
dart 1.dart 3168ms 4.6ms 16.4MB 3147ms 7ms dart/exe 2.19.1
dart 1.dart 3209ms 4.6ms 14.7MB 3193ms 7ms 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
go 3.go 83ms 0.5ms 2.0MB 70ms 0ms tinygo 0.25.0
go 3.go 92ms 1.8ms 4.1MB 80ms 0ms go 1.19.5
dart 2.dart 111ms 1.9ms 14.8MB 93ms 0ms dart/exe 2.19.1
dart 2.dart 113ms 2.6ms 14.7MB 93ms 7ms dart/exe 3.0.0-187.0.dev
dart 1.dart 183ms 2.2ms 14.9MB 163ms 0ms dart/exe 2.19.1
dart 1.dart 187ms 2.7ms 16.3MB 170ms 3ms 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 533ms 7.8ms 68.6MB 510ms 20ms dart/exe 2.19.1
dart 1.dart 612ms 5.3ms 70.8MB 590ms 27ms dart/exe 3.0.0-187.0.dev
go 1.go 2223ms 27ms 40.1MB 3083ms 63ms go 1.19.5
go 2.go 2469ms 6.5ms 41.8MB 3500ms 63ms go 1.19.5
go 1.go 4230ms 3.2ms 212.7MB 4150ms 60ms tinygo 0.25.0
go 2.go timeout 0.0ms 68.9MB 4973ms 7ms tinygo 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 134ms 3.3ms 48.7MB 103ms 20ms dart/exe 2.19.1
dart 1.dart 145ms 1.2ms 48.7MB 113ms 20ms dart/exe 3.0.0-187.0.dev
go 1.go 474ms 6.1ms 12.5MB 633ms 20ms go 1.19.5
go 2.go 528ms 6.9ms 13.6MB 730ms 13ms go 1.19.5
go 1.go 732ms 1.3ms 52.2MB 703ms 7ms tinygo 0.25.0
go 2.go 1428ms 1.8ms 38.9MB 1403ms 3ms tinygo 0.25.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 514ms 14ms 4.9MB 500ms 0ms go 1.19.5
dart 3.dart 620ms 1.1ms 13.8MB 603ms 0ms dart/exe 3.0.0-187.0.dev
dart 3.dart 621ms 2.4ms 13.6MB 603ms 0ms dart/exe 2.19.1
go 1.go 705ms 0.8ms 0.0MB 697ms 0ms tinygo 0.25.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 59ms 3.3ms 2.9MB 47ms 0ms go 1.19.5
dart 3.dart 72ms 1.9ms 12.0MB 60ms 0ms dart/exe 2.19.1
go 1.go 73ms 0.5ms 0.0MB 63ms 0ms tinygo 0.25.0
dart 3.dart 75ms 0.9ms 11.6MB 57ms 0ms dart/exe 3.0.0-187.0.dev

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 8.go 1421ms 7.6ms 8.5MB 1393ms 7ms go 1.19.5
dart 2.dart 1796ms 33ms 22.4MB 1740ms 43ms dart/exe 2.19.1
dart 2.dart 1835ms 18ms 22.1MB 1777ms 43ms dart/exe 3.0.0-187.0.dev

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 8.go 348ms 4.5ms 8.5MB 327ms 3ms go 1.19.5
dart 2.dart 416ms 5.5ms 20.6MB 377ms 20ms dart/exe 3.0.0-187.0.dev
dart 2.dart 445ms 0.8ms 22.2MB 403ms 23ms dart/exe 2.19.1

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart timeout 0.0ms 162.2MB 4923ms 57ms dart/exe 2.19.1
dart 1.dart timeout 0.0ms 156.0MB 4923ms 53ms dart/exe 3.0.0-187.0.dev
go 3.go timeout 0.0ms 111.3MB 4967ms 110ms go 1.19.5
go 3.go timeout 0.0ms 120.7MB 4940ms 40ms tinygo 0.25.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 702ms 1.5ms 55.9MB 667ms 20ms dart/exe 3.0.0-187.0.dev
dart 1.dart 709ms 1.6ms 53.6MB 677ms 20ms dart/exe 2.19.1
go 3.go 2426ms 7.5ms 20.9MB 2413ms 30ms go 1.19.5
go 3.go timeout 0.0ms 30.0MB 4980ms 3ms tinygo 0.25.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 4-m.go 2235ms 18ms 5.4MB 4320ms 3ms go 1.19.5
go 1.go 4404ms 4.0ms 5.5MB 4393ms 3ms go 1.19.5
dart 1.dart 4806ms 5.2ms 11.6MB 4790ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart timeout 0.0ms 11.4MB 4980ms 0ms dart/exe 2.19.1
go 1.go timeout 0.0ms 0.4MB 4987ms 0ms tinygo 0.25.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 4-m.go 577ms 7.0ms 2.9MB 1083ms 0ms go 1.19.5
go 1.go 1114ms 1.2ms 2.9MB 1103ms 0ms go 1.19.5
dart 1.dart 1207ms 2.7ms 13.8MB 1193ms 0ms dart/exe 3.0.0-187.0.dev
dart 1.dart 1407ms 1.5ms 14.2MB 1390ms 0ms dart/exe 2.19.1
go 1.go timeout 0.0ms 0.0MB 4983ms 0ms tinygo 0.25.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 4-m.go 152ms 2.2ms 2.9MB 270ms 0ms go 1.19.5
go 1.go 284ms 2.4ms 2.9MB 270ms 0ms go 1.19.5
dart 1.dart 312ms 2.6ms 14.0MB 297ms 3ms dart/exe 3.0.0-187.0.dev
dart 1.dart 362ms 3.3ms 13.8MB 340ms 0ms dart/exe 2.19.1
go 1.go 1642ms 4.7ms 0.0MB 1630ms 0ms tinygo 0.25.0