Javascript VS Dart benchmarks

Current benchmark data was generated on Sat Jan 28 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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 992ms 20ms 87.6MB 960ms 33ms dart/exe 2.19.0
javascript 1.js 1250ms 7.2ms 244.6MB 1580ms 50ms bun 0.5.1
javascript 1.js 3580ms 51ms 262.3MB 2593ms 1213ms node 19.5.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 100ms 1.5ms 47.9MB 70ms 17ms dart/exe 2.19.0
javascript 1.js 120ms 5.4ms 103.9MB 103ms 13ms bun 0.5.1
javascript 1.js 165ms 1.7ms 69.5MB 153ms 17ms node 19.5.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 2275ms 38ms 81.0MB 2327ms 30ms node 19.5.0
javascript 1.js 3607ms 97ms 108.9MB 3583ms 27ms bun 0.5.1
dart 1.dart timeout 0.0ms 24.3MB 4900ms 70ms dart/exe 2.19.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 212ms 5.6ms 62.5MB 187ms 13ms node 19.5.0
javascript 1.js 258ms 5.7ms 103.5MB 263ms 17ms bun 0.5.1
dart 1.dart 553ms 1.9ms 16.2MB 520ms 10ms dart/exe 2.19.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 400ms 10ms 99.9MB 380ms 13ms bun 0.5.1
javascript 1.js 403ms 0.2ms 59.4MB 407ms 20ms node 19.5.0
dart 1.dart 4938ms 23ms 23.7MB 4900ms 30ms dart/exe 2.19.0

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 183ms 1.0ms 52.9MB 190ms 3ms node 19.5.0
javascript 1.js 414ms 0.3ms 87.6MB 400ms 10ms bun 0.5.1
dart 1.dart 791ms 1.1ms 15.6MB 763ms 10ms dart/exe 2.19.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 15ms 0.5ms 49.9MB 0ms 0ms bun 0.5.1
javascript 1.js 43ms 0.8ms 44.8MB 28ms 4ms node 19.5.0
dart 1.dart 407ms 548ms 14.0MB 0ms 0ms dart/exe 2.19.0

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 136ms 2.6ms 88.9MB 73ms 53ms bun 0.5.1
dart 2.dart 1910ms 398ms 117.8MB 963ms 653ms dart/exe 2.19.0
dart 1.dart 3763ms 61ms 106.4MB 967ms 580ms dart/exe 2.19.0
javascript 1.js 3900ms 51ms 154.6MB 1713ms 353ms node 19.5.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 87ms 5.3ms 74.2MB 23ms 27ms bun 0.5.1
javascript 1.js 373ms 19ms 70.1MB 350ms 83ms node 19.5.0
dart 2.dart 593ms 595ms 56.9MB 173ms 120ms dart/exe 2.19.0
dart 1.dart 1348ms 116ms 55.9MB 140ms 113ms dart/exe 2.19.0

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 131ms 1.3ms 92.3MB 110ms 7ms bun 0.5.1
javascript 1.js 170ms 1.6ms 75.5MB 147ms 20ms node 19.5.0
dart 1.dart 264ms 2.2ms 58.7MB 237ms 13ms dart/exe 2.19.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 722ms 0.6ms 257.6MB 697ms 47ms bun 0.5.1
javascript 1.js 1074ms 7.9ms 281.7MB 1037ms 103ms node 19.5.0
dart 1.dart 2132ms 3.3ms 302.9MB 2197ms 90ms dart/exe 2.19.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 251ms 2.9ms 15.0MB 237ms 0ms dart/exe 2.19.0
javascript 2.js 376ms 2.0ms 54.6MB 363ms 3ms node 19.5.0
javascript 1.js 558ms 5.7ms 142.4MB 547ms 30ms bun 0.5.1
javascript 2.js 792ms 5.3ms 109.3MB 800ms 13ms bun 0.5.1
javascript 1.js 1034ms 5.1ms 61.8MB 1013ms 10ms node 19.5.0
dart 1.dart 1462ms 3.8ms 14.4MB 1447ms 0ms dart/exe 2.19.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 743ms 14ms 14.3MB 723ms 3ms dart/exe 2.19.0
javascript 2.js 1014ms 6.1ms 61.5MB 990ms 17ms node 19.5.0
javascript 1.js 1587ms 8.0ms 164.9MB 1607ms 23ms bun 0.5.1
javascript 2.js 2293ms 13ms 120.6MB 2303ms 10ms bun 0.5.1
javascript 1.js 2965ms 7.7ms 62.1MB 2940ms 17ms node 19.5.0
dart 1.dart 4365ms 5.6ms 16.5MB 4343ms 0ms dart/exe 2.19.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 118ms 2.0ms 15.0MB 100ms 0ms dart/exe 2.19.0
javascript 2.js 203ms 3.7ms 49.1MB 193ms 3ms node 19.5.0
dart 1.dart 215ms 2.6ms 17.1MB 200ms 0ms dart/exe 2.19.0
javascript 1.js 296ms 6.1ms 117.4MB 287ms 17ms bun 0.5.1
javascript 1.js 376ms 2.1ms 49.6MB 367ms 3ms node 19.5.0
javascript 2.js 429ms 10ms 102.0MB 440ms 17ms bun 0.5.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 487ms 6.4ms 70.7MB 463ms 20ms dart/exe 2.19.0
javascript 1.js 735ms 6.0ms 153.3MB 813ms 30ms bun 0.5.1
javascript 1.js 784ms 10ms 121.8MB 803ms 43ms node 19.5.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 126ms 0.9ms 49.1MB 100ms 13ms dart/exe 2.19.0
javascript 1.js 169ms 5.3ms 104.0MB 147ms 23ms bun 0.5.1
javascript 1.js 230ms 5.3ms 90.0MB 203ms 37ms node 19.5.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 528ms 4.1ms 12.1MB 513ms 0ms dart/exe 2.19.0
javascript 6.js 606ms 7.3ms 47.3MB 593ms 0ms node 19.5.0
javascript 6.js 1009ms 0.7ms 68.0MB 1000ms 10ms bun 0.5.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 107ms 2.6ms 47.4MB 93ms 3ms node 19.5.0
javascript 6.js 121ms 0.7ms 61.9MB 113ms 7ms bun 0.5.1
dart 3.dart 1060ms 0.3ms 13.7MB 50ms 0ms dart/exe 2.19.0

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 3026ms 3.2ms 102.2MB 3037ms 27ms bun 0.5.1
javascript 1.js 3297ms 5.2ms 51.4MB 3300ms 10ms node 19.5.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 785ms 4.4ms 106.8MB 790ms 17ms bun 0.5.1
javascript 1.js 872ms 6.1ms 50.0MB 873ms 3ms node 19.5.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 1694ms 19ms 21.9MB 1620ms 53ms dart/exe 2.19.0
javascript 3.js timeout 0.0ms 79.0MB 4980ms 20ms node 19.5.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 424ms 7.3ms 19.8MB 383ms 27ms dart/exe 2.19.0
javascript 3.js 1552ms 2.5ms 62.3MB 1543ms 17ms node 19.5.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2751ms 43ms 68.9MB 5193ms 17ms node 19.5.0
dart 1.dart timeout 0.0ms 11.9MB 4990ms 0ms dart/exe 2.19.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 835ms 6.6ms 68.8MB 1467ms 23ms node 19.5.0
dart 1.dart 1293ms 3.0ms 13.8MB 1270ms 0ms dart/exe 2.19.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 331ms 2.5ms 14.0MB 317ms 0ms dart/exe 2.19.0
javascript 6.js 404ms 15ms 66.5MB 533ms 23ms node 19.5.0