Dart VS Java benchmarks

Current benchmark data was generated on Thu Feb 01 2024, 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
java 2.java 450ms 3.2ms 574.3MB 543ms 87ms openjdk 21
java 2-m.java 462ms 4.6ms 646.8MB 650ms 110ms graal/jvm 17.0.8
java 2.java 462ms 4.8ms 588.2MB 563ms 97ms openjdk 23
dart 1.dart 702ms 2.0ms 80.5MB 660ms 43ms dart/exe 3.2.6
java 2.java 1178ms 0.9ms 1055.6MB 607ms 733ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 75ms 0.5ms 42.4MB 57ms 10ms dart/exe 3.2.6
java 2.java 123ms 1.1ms 166.9MB 147ms 37ms openjdk 21
java 2-m.java 125ms 1.5ms 163.2MB 157ms 33ms openjdk 23
java 2-m.java 168ms 15ms 230.2MB 220ms 70ms graal/jvm 17.0.8
java 2.java 314ms 1.3ms 241.4MB 153ms 213ms openjdk/zgc 21

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 1479ms 121ms 258.9MB 5493ms 127ms openjdk 23
java 1-m.java 1911ms 174ms 261.1MB 7210ms 130ms openjdk 21
java 1-m.java 2816ms 55ms 1230.1MB 8900ms 1077ms openjdk/zgc 21
dart 1.dart timeout 0.0ms 20.3MB 4943ms 67ms dart/exe 3.2.6

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 370ms 49ms 84.9MB 1203ms 50ms openjdk 23
dart 1.dart 373ms 5.3ms 10.3MB 350ms 13ms dart/exe 3.2.6
java 1-m.java 436ms 31ms 123.1MB 1460ms 57ms openjdk 21
java 1-m.java 668ms 28ms 216.5MB 1783ms 257ms openjdk/zgc 21

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 652ms 40ms 265.4MB 1723ms 73ms openjdk 23
java 1-m.java 673ms 9.3ms 264.3MB 1770ms 67ms openjdk 21
java 1-m.java 695ms 70ms 353.3MB 1313ms 137ms graal/jvm 17.0.8
java 1-m.java 969ms 31ms 521.1MB 1597ms 453ms openjdk/zgc 21
dart 1.dart 3677ms 17ms 17.4MB 3640ms 33ms dart/exe 3.2.6

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 320ms 17ms 241.0MB 623ms 73ms graal/jvm 17.0.8
java 1-m.java 360ms 30ms 179.2MB 963ms 63ms openjdk 21
java 1-m.java 372ms 19ms 173.4MB 1023ms 43ms openjdk 23
java 1-m.java 513ms 31ms 215.7MB 987ms 223ms openjdk/zgc 21
dart 1.dart 593ms 7.3ms 9.9MB 570ms 7ms dart/exe 3.2.6

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 888ms 5.5ms 97.2MB 3257ms 43ms graal/jvm 17.0.8
java 1-m.java 946ms 34ms 48.5MB 3513ms 23ms openjdk 21
java 1-m.java 989ms 11ms 49.0MB 3650ms 17ms openjdk 23
java 1-m.java 1010ms 36ms 47.9MB 3313ms 133ms openjdk/zgc 21
dart 2.dart 2804ms 8.6ms 6.1MB 2793ms 0ms dart/exe 3.2.6

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 179ms 6.4ms 48.5MB 490ms 27ms openjdk 21
java 1-m.java 185ms 1.9ms 48.7MB 487ms 13ms openjdk 23
java 1-m.java 198ms 9.6ms 97.6MB 523ms 47ms graal/jvm 17.0.8
dart 2.dart 231ms 3.0ms 6.0MB 217ms 0ms dart/exe 3.2.6
java 1-m.java 290ms 2.9ms 45.8MB 473ms 133ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 369ms 1.2ms 8.5MB 357ms 0ms dart/exe 3.2.6
java 4.java 440ms 1.7ms 107.1MB 620ms 27ms graal/jvm 17.0.8
java 4.java 450ms 5.5ms 47.4MB 530ms 17ms openjdk 21
java 4.java 455ms 1.9ms 47.5MB 543ms 17ms openjdk 23
java 4.java 565ms 1.6ms 45.1MB 533ms 133ms openjdk/zgc 21

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 44ms 0.7ms 8.5MB 30ms 0ms dart/exe 3.2.6
java 4.java 119ms 4.0ms 46.5MB 167ms 7ms openjdk 23
java 4.java 124ms 1.1ms 46.2MB 157ms 23ms openjdk 21
java 4-m.java 144ms 8.0ms 99.7MB 213ms 30ms graal/jvm 17.0.8
java 4.java 242ms 5.6ms 43.9MB 167ms 133ms openjdk/zgc 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 4.2ms 0.3ms 6.3MB 0ms 0ms dart/exe 3.2.6
java 1.java 66ms 3.1ms 54.7MB 64ms 24ms graal/jvm 17.0.8
java 1.java 73ms 1.9ms 43.8MB 74ms 14ms openjdk 21
java 1.java 73ms 2.7ms 43.9MB 80ms 14ms openjdk 23
java 1.java 189ms 6.4ms 42.6MB 84ms 132ms openjdk/zgc 21

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2-m.dart 1386ms 35ms 120.2MB 1173ms 1390ms dart/exe 3.2.6
dart 1.dart timeout 0.0ms 117.0MB 1233ms 1397ms dart/exe 3.2.6

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 320ms 8.6ms 50.4MB 177ms 267ms dart/exe 3.2.6
dart 1.dart 2312ms 20ms 50.6MB 197ms 233ms dart/exe 3.2.6

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 202ms 4.6ms 53.2MB 173ms 17ms dart/exe 3.2.6

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1586ms 26ms 296.2MB 1623ms 130ms dart/exe 3.2.6

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 976ms 15ms 142.6MB 3320ms 40ms openjdk 23
java 3-m.java 1035ms 59ms 129.1MB 3537ms 67ms openjdk 21
java 3-m.java 1111ms 17ms 183.2MB 3750ms 77ms graal/jvm 17.0.8
java 3-m.java 1429ms 32ms 178.3MB 4530ms 183ms openjdk/zgc 21
dart 3-m.dart 1651ms 46ms 279.4MB 4557ms 133ms dart/exe 3.2.6

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3-m.dart 261ms 3.2ms 196.8MB 633ms 73ms dart/exe 3.2.6
java 3-m.java 314ms 22ms 88.4MB 907ms 47ms openjdk 23
java 3-m.java 329ms 5.5ms 100.1MB 987ms 50ms openjdk 21
java 3-m.java 337ms 30ms 145.3MB 897ms 57ms graal/jvm 17.0.8
java 3-m.java 428ms 11ms 98.6MB 890ms 150ms openjdk/zgc 21

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 168ms 4.5ms 9.0MB 153ms 0ms dart/exe 3.2.6
dart 1.dart 572ms 2.7ms 9.0MB 560ms 0ms dart/exe 3.2.6

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 483ms 4.1ms 8.8MB 467ms 0ms dart/exe 3.2.6
dart 1.dart 1698ms 2.4ms 8.9MB 1687ms 3ms dart/exe 3.2.6

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 80ms 0.6ms 9.0MB 70ms 0ms dart/exe 3.2.6
dart 1.dart 118ms 1.5ms 8.5MB 107ms 3ms dart/exe 3.2.6

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 321ms 3.4ms 63.5MB 290ms 30ms dart/exe 3.2.6
java 1.java 399ms 1.6ms 680.1MB 480ms 80ms openjdk 21
java 1.java 400ms 2.6ms 658.4MB 477ms 80ms openjdk 23
java 1-m.java 411ms 5.6ms 638.2MB 593ms 120ms graal/jvm 17.0.8
java 1.java 1027ms 7.4ms 941.0MB 473ms 707ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 84ms 0.8ms 43.4MB 60ms 10ms dart/exe 3.2.6
java 1-m.java 160ms 2.0ms 198.3MB 237ms 33ms openjdk 23
java 1-m.java 164ms 2.2ms 206.7MB 243ms 37ms openjdk 21
java 1-m.java 251ms 4.7ms 257.4MB 403ms 73ms graal/jvm 17.0.8
java 1.java 430ms 21ms 343.8MB 227ms 277ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 443ms 1.2ms 47.6MB 487ms 13ms openjdk 23
java 1.java 444ms 1.9ms 45.4MB 477ms 20ms openjdk 21
dart 3.dart 447ms 0.3ms 6.3MB 437ms 0ms dart/exe 3.2.6
java 1.java 455ms 6.6ms 86.8MB 483ms 30ms graal/jvm 17.0.8
java 1.java 559ms 4.6ms 46.7MB 480ms 133ms openjdk/zgc 21
java 2.java 1234ms 5.9ms 597.7MB 1363ms 77ms openjdk 23
java 2.java 1238ms 9.8ms 647.8MB 1373ms 80ms openjdk 21
java 2.java 3177ms 56ms 2367.4MB 1670ms 1723ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 50ms 0.8ms 6.1MB 40ms 0ms dart/exe 3.2.6
java 1.java 119ms 1.1ms 45.5MB 147ms 23ms openjdk 21
java 1.java 120ms 0.2ms 47.8MB 153ms 20ms openjdk 23
java 1.java 126ms 5.3ms 87.5MB 157ms 27ms graal/jvm 17.0.8
java 1.java 243ms 2.9ms 46.7MB 163ms 140ms openjdk/zgc 21
java 2-m.java 295ms 2.6ms 352.8MB 433ms 50ms openjdk 23
java 2-m.java 298ms 4.2ms 362.9MB 443ms 50ms openjdk 21
java 2.java 681ms 8.7ms 528.1MB 440ms 427ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 1241ms 8.6ms 14.5MB 1200ms 40ms dart/exe 3.2.6
java 1.java 3191ms 33ms 448.1MB 3637ms 107ms graal/jvm 17.0.8
java 1.java 3685ms 53ms 351.8MB 4547ms 103ms openjdk 21
java 1.java 3771ms 108ms 349.5MB 4527ms 107ms openjdk 23
java 1.java timeout 0.0ms 1824.0MB 4710ms 1153ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 301ms 4.8ms 14.5MB 277ms 20ms dart/exe 3.2.6
java 1.java 886ms 25ms 443.5MB 1233ms 90ms graal/jvm 17.0.8
java 1-m.java 985ms 30ms 350.6MB 1777ms 103ms openjdk 21
java 1-m.java 1029ms 9.0ms 353.0MB 1767ms 87ms openjdk 23
java 1.java 1995ms 36ms 1348.5MB 1753ms 1007ms openjdk/zgc 21

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 282.7MB 4920ms 67ms dart/exe 3.2.6
java 3.java timeout 0.0ms 411.4MB 5437ms 90ms graal/jvm 17.0.8
java 3.java timeout 0.0ms 303.5MB 5317ms 57ms openjdk 21
java 3.java timeout 0.0ms 303.4MB 5307ms 70ms openjdk 23
java 3.java timeout 0.0ms 469.6MB 4963ms 307ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 593ms 10ms 47.9MB 557ms 20ms dart/exe 3.2.6
java 3-m.java 783ms 12ms 181.0MB 1160ms 67ms graal/jvm 17.0.8
java 3-m.java 809ms 17ms 130.9MB 1203ms 37ms openjdk 21
java 3-m.java 810ms 3.6ms 130.8MB 1213ms 43ms openjdk 23
java 3.java 967ms 17ms 133.5MB 1183ms 177ms openjdk/zgc 21

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1956ms 9.0ms 48.0MB 7453ms 37ms openjdk 23
java 2-m.java 1957ms 12ms 47.8MB 7463ms 27ms openjdk 21
java 2-m.java 2081ms 13ms 45.6MB 7440ms 140ms openjdk/zgc 21
java 2-m.java 2462ms 20ms 94.8MB 8777ms 47ms graal/jvm 17.0.8
dart 1.dart 3807ms 41ms 6.1MB 3797ms 0ms dart/exe 3.2.6

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 583ms 3.4ms 47.7MB 2050ms 20ms openjdk 21
java 2-m.java 586ms 3.4ms 47.9MB 2070ms 20ms openjdk 23
java 2-m.java 713ms 3.2ms 45.6MB 2100ms 133ms openjdk/zgc 21
java 2-m.java 744ms 11ms 100.2MB 2513ms 37ms graal/jvm 17.0.8
dart 1.dart 961ms 4.2ms 6.1MB 950ms 0ms dart/exe 3.2.6

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 233ms 0.9ms 47.6MB 667ms 20ms openjdk 21
dart 1.dart 243ms 1.0ms 6.0MB 230ms 0ms dart/exe 3.2.6
java 2-m.java 243ms 5.5ms 47.9MB 727ms 23ms openjdk 23
java 2-m.java 277ms 8.5ms 98.5MB 783ms 43ms graal/jvm 17.0.8
java 2-m.java 372ms 13ms 45.5MB 740ms 133ms openjdk/zgc 21