Dart VS Java benchmarks

Current benchmark data was generated on Tue Apr 01 2025, 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 463ms 0.8ms 576.3MB 547ms 97ms openjdk 21
java 2-m.java 465ms 3.0ms 643.3MB 647ms 120ms graal/jvm 17.0.8
java 2.java 474ms 2.2ms 624.4MB 590ms 93ms openjdk 23
dart 1.dart 746ms 1.9ms 80.9MB 717ms 37ms dart/exe 3.7.2
java 2.java 1249ms 22ms 1096.2MB 580ms 837ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 77ms 0.9ms 42.9MB 50ms 17ms dart/exe 3.7.2
java 2.java 126ms 3.1ms 167.2MB 157ms 30ms openjdk 21
java 2-m.java 128ms 4.5ms 98.8MB 163ms 30ms openjdk 23
java 2-m.java 149ms 6.5ms 224.4MB 223ms 57ms graal/jvm 17.0.8
java 2.java 313ms 5.1ms 241.8MB 160ms 210ms 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 2369ms 239ms 257.6MB 8973ms 137ms openjdk 21
java 1-m.java 2440ms 133ms 242.6MB 9250ms 147ms openjdk 23
java 1-m.java 3165ms 194ms 1248.2MB 10320ms 1190ms openjdk/zgc 21
dart 1.dart 4958ms 24ms 19.3MB 5457ms 93ms dart/exe 3.7.2

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 338ms 5.0ms 10.4MB 347ms 10ms dart/exe 3.7.2
java 1-m.java 474ms 13ms 92.7MB 1553ms 60ms openjdk 23
java 1-m.java 482ms 35ms 122.2MB 1600ms 70ms openjdk 21
java 1-m.java 665ms 22ms 214.5MB 1780ms 247ms openjdk/zgc 21

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 599ms 4.3ms 354.2MB 1150ms 117ms graal/jvm 17.0.8
java 1-m.java 634ms 43ms 266.3MB 1703ms 67ms openjdk 21
java 1-m.java 657ms 59ms 261.5MB 1740ms 83ms openjdk 23
java 1-m.java 997ms 4.6ms 529.0MB 1707ms 430ms openjdk/zgc 21
dart 1.dart 3785ms 82ms 18.3MB 3750ms 40ms dart/exe 3.7.2

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 303ms 7.2ms 226.0MB 597ms 67ms graal/jvm 17.0.8
java 1-m.java 382ms 15ms 179.0MB 1037ms 57ms openjdk 21
java 1-m.java 387ms 8.5ms 111.7MB 1057ms 53ms openjdk 23
java 1-m.java 549ms 3.9ms 215.3MB 1083ms 230ms openjdk/zgc 21
dart 1.dart 609ms 3.4ms 10.3MB 587ms 17ms dart/exe 3.7.2

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 899ms 11ms 95.9MB 3313ms 40ms graal/jvm 17.0.8
java 1-m.java 955ms 65ms 49.0MB 3507ms 23ms openjdk 21
java 1-m.java 988ms 5.4ms 50.3MB 3637ms 27ms openjdk 23
java 1-m.java 1035ms 2.7ms 45.8MB 3383ms 150ms openjdk/zgc 21
dart 2.dart 2718ms 16ms 6.3MB 2710ms 0ms dart/exe 3.7.2

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 177ms 4.1ms 48.6MB 473ms 27ms openjdk 21
java 1-m.java 194ms 12ms 95.8MB 533ms 37ms graal/jvm 17.0.8
java 1-m.java 199ms 4.2ms 50.1MB 520ms 23ms openjdk 23
dart 2.dart 224ms 3.1ms 6.3MB 213ms 0ms dart/exe 3.7.2
java 1-m.java 310ms 7.3ms 46.1MB 520ms 140ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 368ms 16ms 8.9MB 357ms 0ms dart/exe 3.7.2
java 4-m.java 447ms 11ms 101.5MB 637ms 40ms graal/jvm 17.0.8
java 4.java 460ms 1.3ms 49.2MB 550ms 20ms openjdk 23
java 4.java 461ms 3.8ms 47.6MB 547ms 20ms openjdk 21
java 4.java 578ms 7.4ms 45.3MB 540ms 147ms openjdk/zgc 21

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 47ms 7.3ms 8.6MB 33ms 0ms dart/exe 3.7.2
java 4-m.java 128ms 4.4ms 93.9MB 177ms 40ms graal/jvm 17.0.8
java 4.java 128ms 3.4ms 46.2MB 167ms 20ms openjdk 21
java 4.java 129ms 1.5ms 48.3MB 170ms 20ms openjdk 23
java 4.java 249ms 1.9ms 43.7MB 170ms 140ms openjdk/zgc 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 3.7ms 0.4ms 6.3MB 0ms 0ms dart/exe 3.7.2
java 1.java 64ms 1.4ms 52.8MB 66ms 20ms graal/jvm 17.0.8
java 1.java 68ms 2.2ms 43.7MB 78ms 18ms openjdk 21
java 1.java 73ms 6.0ms 44.7MB 76ms 18ms openjdk 23
java 1.java 195ms 5.0ms 43.0MB 86ms 138ms 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 1437ms 40ms 95.8MB 1333ms 1600ms dart/exe 3.7.2
dart 1.dart 4553ms 55ms 97.5MB 1577ms 1797ms dart/exe 3.7.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2-m.dart 263ms 12ms 50.0MB 177ms 300ms dart/exe 3.7.2
dart 1.dart 2004ms 495ms 50.1MB 170ms 260ms dart/exe 3.7.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 164ms 1.9ms 53.3MB 137ms 17ms dart/exe 3.7.2

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1495ms 22ms 206.0MB 1753ms 107ms dart/exe 3.7.2

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 1046ms 62ms 129.0MB 3583ms 47ms openjdk 21
java 3-m.java 1088ms 44ms 179.5MB 3717ms 70ms graal/jvm 17.0.8
java 3-m.java 1110ms 33ms 156.5MB 3790ms 60ms openjdk 23
dart 3-m.dart 1186ms 78ms 274.5MB 3443ms 107ms dart/exe 3.7.2
java 3-m.java 1433ms 34ms 179.4MB 4537ms 207ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3-m.dart 207ms 2.8ms 187.3MB 523ms 60ms dart/exe 3.7.2
java 3-m.java 331ms 17ms 101.3MB 940ms 47ms openjdk 21
java 3-m.java 335ms 14ms 140.0MB 907ms 60ms graal/jvm 17.0.8
java 3-m.java 346ms 6.0ms 90.5MB 1027ms 40ms openjdk 23
java 3-m.java 444ms 4.7ms 98.6MB 927ms 177ms 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 1.3ms 9.3MB 160ms 0ms dart/exe 3.7.2
dart 1.dart 493ms 1.9ms 9.1MB 480ms 0ms dart/exe 3.7.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 482ms 3.7ms 9.1MB 473ms 0ms dart/exe 3.7.2
dart 1.dart 1452ms 7.2ms 9.3MB 1433ms 7ms dart/exe 3.7.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 80ms 0.7ms 9.5MB 70ms 0ms dart/exe 3.7.2
dart 1.dart 113ms 2.1ms 8.8MB 103ms 0ms dart/exe 3.7.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 317ms 5.5ms 63.9MB 290ms 27ms dart/exe 3.7.2
java 1.java 403ms 6.5ms 679.3MB 460ms 100ms openjdk 21
java 1.java 404ms 6.2ms 543.6MB 507ms 87ms openjdk 23
java 1-m.java 415ms 10ms 628.4MB 613ms 107ms graal/jvm 17.0.8
java 1.java 1081ms 7.3ms 969.4MB 447ms 757ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 85ms 0.9ms 43.8MB 60ms 10ms dart/exe 3.7.2
java 1-m.java 168ms 0.6ms 158.6MB 250ms 40ms openjdk 23
java 1-m.java 170ms 0.4ms 206.2MB 240ms 50ms openjdk 21
java 1-m.java 218ms 17ms 253.4MB 360ms 60ms graal/jvm 17.0.8
java 1.java 426ms 21ms 342.0MB 217ms 290ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 408ms 2.1ms 6.1MB 397ms 0ms dart/exe 3.7.2
java 1.java 448ms 1.9ms 45.3MB 487ms 20ms openjdk 21
java 1.java 448ms 1.6ms 48.3MB 480ms 20ms openjdk 23
java 1.java 449ms 6.6ms 81.5MB 477ms 30ms graal/jvm 17.0.8
java 1.java 566ms 4.0ms 44.5MB 483ms 137ms openjdk/zgc 21
java 2.java 1270ms 4.1ms 792.6MB 1393ms 103ms openjdk 23
java 2.java 1288ms 52ms 595.9MB 1420ms 83ms openjdk 21
java 2.java 3257ms 134ms 2431.0MB 1623ms 1843ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 47ms 0.5ms 6.3MB 40ms 0ms dart/exe 3.7.2
java 1-m.java 119ms 1.7ms 81.7MB 147ms 33ms graal/jvm 17.0.8
java 1.java 121ms 1.4ms 45.2MB 160ms 20ms openjdk 21
java 1.java 124ms 7.2ms 48.2MB 160ms 20ms openjdk 23
java 1.java 248ms 4.1ms 44.9MB 170ms 140ms openjdk/zgc 21
java 2-m.java 301ms 9.8ms 387.1MB 443ms 53ms openjdk 21
java 2-m.java 314ms 3.1ms 416.0MB 453ms 70ms openjdk 23
java 2.java 692ms 5.9ms 525.1MB 467ms 410ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 1344ms 9.8ms 14.9MB 1310ms 30ms dart/exe 3.7.2
java 1.java 3228ms 17ms 443.5MB 3663ms 97ms graal/jvm 17.0.8
java 1.java 3745ms 13ms 432.2MB 4617ms 123ms openjdk 23
java 1.java 3749ms 15ms 432.6MB 4667ms 110ms openjdk 21
java 1.java timeout 0.0ms 1935.8MB 4717ms 1170ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 337ms 6.1ms 14.6MB 320ms 10ms dart/exe 3.7.2
java 1.java 888ms 9.3ms 445.3MB 1240ms 80ms graal/jvm 17.0.8
java 1-m.java 1037ms 26ms 352.0MB 1820ms 103ms openjdk 21
java 1-m.java 1052ms 11ms 383.3MB 1800ms 100ms openjdk 23
java 1.java 2087ms 5.4ms 1391.0MB 1783ms 1130ms 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 188.3MB 4987ms 47ms dart/exe 3.7.2
java 3.java timeout 0.0ms 407.6MB 5400ms 97ms graal/jvm 17.0.8
java 3.java timeout 0.0ms 302.4MB 5330ms 57ms openjdk 21
java 3.java timeout 0.0ms 304.9MB 5337ms 57ms openjdk 23
java 3.java timeout 0.0ms 467.6MB 4963ms 297ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 566ms 4.3ms 43.2MB 550ms 7ms dart/exe 3.7.2
java 3-m.java 787ms 14ms 175.2MB 1167ms 57ms graal/jvm 17.0.8
java 3-m.java 806ms 23ms 130.6MB 1207ms 40ms openjdk 21
java 3-m.java 810ms 30ms 133.1MB 1227ms 37ms openjdk 23
java 3.java 972ms 20ms 133.7MB 1177ms 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 1997ms 10ms 47.8MB 7620ms 23ms openjdk 21
java 2-m.java 2004ms 6.8ms 48.5MB 7647ms 23ms openjdk 23
java 2-m.java 2106ms 19ms 45.5MB 7530ms 147ms openjdk/zgc 21
java 2-m.java 2510ms 37ms 95.1MB 9387ms 50ms graal/jvm 17.0.8
dart 1.dart 3771ms 9.4ms 6.5MB 3760ms 0ms dart/exe 3.7.2
dart 2.dart 4352ms 14ms 6.4MB 4343ms 0ms dart/exe 3.7.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 608ms 11ms 49.1MB 2147ms 23ms openjdk 23
java 2-m.java 610ms 7.9ms 47.8MB 2153ms 23ms openjdk 21
java 2-m.java 729ms 4.6ms 45.4MB 2143ms 150ms openjdk/zgc 21
java 2-m.java 762ms 11ms 93.2MB 2673ms 43ms graal/jvm 17.0.8
dart 1.dart 945ms 2.3ms 6.3MB 937ms 0ms dart/exe 3.7.2
dart 2.dart 1096ms 6.4ms 6.1MB 1087ms 0ms dart/exe 3.7.2

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 241ms 0.7ms 6.3MB 230ms 0ms dart/exe 3.7.2
java 2-m.java 253ms 8.5ms 48.1MB 743ms 23ms openjdk 21
java 2-m.java 267ms 10ms 48.9MB 800ms 27ms openjdk 23
dart 2.dart 282ms 1.1ms 6.2MB 270ms 0ms dart/exe 3.7.2
java 2-m.java 298ms 25ms 94.0MB 890ms 37ms graal/jvm 17.0.8
java 2-m.java 383ms 1.6ms 45.6MB 763ms 147ms openjdk/zgc 21