Dart VS Java benchmarks

Current benchmark data was generated on Mon May 19 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 458ms 6.7ms 574.1MB 563ms 77ms openjdk 21
java 2-m.java 466ms 7.3ms 643.0MB 657ms 117ms graal/jvm 17.0.8
java 2.java 468ms 2.3ms 638.7MB 577ms 87ms openjdk 23
dart 1.dart 721ms 1.9ms 80.9MB 697ms 33ms dart/exe 3.7.3
java 2.java 1195ms 46ms 1101.7MB 577ms 787ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 75ms 0.6ms 42.8MB 53ms 13ms dart/exe 3.7.3
java 2.java 128ms 1.6ms 167.0MB 157ms 33ms openjdk 21
java 2.java 133ms 5.7ms 96.5MB 163ms 30ms openjdk 23
java 2-m.java 152ms 7.0ms 215.4MB 227ms 57ms graal/jvm 17.0.8
java 2.java 308ms 9.8ms 241.5MB 170ms 193ms 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 2237ms 158ms 258.9MB 8497ms 143ms openjdk 21
java 1-m.java 2494ms 200ms 242.9MB 9503ms 130ms openjdk 23
java 1-m.java 2940ms 99ms 1203.7MB 9563ms 1067ms openjdk/zgc 21
dart 1.dart 4878ms 14ms 19.5MB 5357ms 80ms dart/exe 3.7.3

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 336ms 3.6ms 10.6MB 333ms 13ms dart/exe 3.7.3
java 1-m.java 467ms 39ms 121.7MB 1563ms 73ms openjdk 21
java 1-m.java 480ms 45ms 94.9MB 1580ms 57ms openjdk 23
java 1-m.java 668ms 8.4ms 212.9MB 1767ms 267ms openjdk/zgc 21

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 603ms 8.3ms 352.7MB 1180ms 97ms graal/jvm 17.0.8
java 1-m.java 611ms 69ms 263.9MB 1673ms 67ms openjdk 21
java 1-m.java 642ms 55ms 231.5MB 1707ms 73ms openjdk 23
java 1-m.java 949ms 34ms 528.2MB 1633ms 413ms openjdk/zgc 21
dart 1.dart 3690ms 7.6ms 18.4MB 3657ms 30ms dart/exe 3.7.3

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 305ms 0.9ms 225.8MB 607ms 63ms graal/jvm 17.0.8
java 1-m.java 330ms 3.5ms 176.0MB 903ms 50ms openjdk 21
java 1-m.java 385ms 22ms 110.7MB 1043ms 50ms openjdk 23
java 1-m.java 509ms 21ms 215.5MB 1010ms 207ms openjdk/zgc 21
dart 1.dart 603ms 1.9ms 10.5MB 583ms 13ms dart/exe 3.7.3

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 898ms 11ms 96.1MB 3307ms 40ms graal/jvm 17.0.8
java 1-m.java 988ms 11ms 48.3MB 3657ms 23ms openjdk 21
java 1-m.java 990ms 2.9ms 50.2MB 3640ms 27ms openjdk 23
java 1-m.java 1042ms 3.9ms 45.7MB 3403ms 137ms openjdk/zgc 21
dart 2.dart 2720ms 13ms 6.5MB 2710ms 0ms dart/exe 3.7.3

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 180ms 7.7ms 48.6MB 490ms 20ms openjdk 21
java 1-m.java 198ms 0.9ms 50.3MB 520ms 23ms openjdk 23
java 1-m.java 210ms 5.5ms 95.7MB 587ms 40ms graal/jvm 17.0.8
dart 2.dart 225ms 2.5ms 6.1MB 213ms 0ms dart/exe 3.7.3
java 1-m.java 311ms 8.8ms 45.9MB 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 359ms 2.9ms 8.8MB 343ms 0ms dart/exe 3.7.3
java 4.java 447ms 1.7ms 100.5MB 630ms 40ms graal/jvm 17.0.8
java 4.java 454ms 3.1ms 47.5MB 533ms 20ms openjdk 21
java 4.java 471ms 9.6ms 49.1MB 567ms 23ms openjdk 23
java 4.java 572ms 6.6ms 45.1MB 543ms 137ms openjdk/zgc 21

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 42ms 0.6ms 8.8MB 30ms 0ms dart/exe 3.7.3
java 4.java 122ms 6.1ms 46.5MB 160ms 17ms openjdk 21
java 4-m.java 130ms 1.9ms 47.6MB 180ms 17ms openjdk 23
java 4-m.java 133ms 5.7ms 94.2MB 190ms 33ms graal/jvm 17.0.8
java 4.java 250ms 3.4ms 44.0MB 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.2ms 5.6MB 0ms 0ms dart/exe 3.7.3
java 1.java 65ms 2.3ms 53.1MB 68ms 20ms graal/jvm 17.0.8
java 1.java 70ms 6.5ms 44.7MB 80ms 14ms openjdk 23
java 1.java 70ms 4.4ms 43.9MB 76ms 18ms openjdk 21
java 1.java 194ms 7.5ms 43.0MB 86ms 142ms 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 1314ms 18ms 94.5MB 1323ms 1417ms dart/exe 3.7.3
dart 1.dart 4483ms 186ms 97.9MB 1553ms 1583ms dart/exe 3.7.3

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2-m.dart 244ms 9.9ms 49.9MB 187ms 257ms dart/exe 3.7.3
dart 1.dart 2304ms 24ms 50.0MB 183ms 253ms dart/exe 3.7.3

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 165ms 3.1ms 53.9MB 140ms 17ms dart/exe 3.7.3

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 1502ms 16ms 204.3MB 1757ms 103ms dart/exe 3.7.3

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 1066ms 62ms 154.5MB 3653ms 53ms openjdk 23
java 3-m.java 1090ms 16ms 125.0MB 3730ms 50ms openjdk 21
java 3-m.java 1113ms 11ms 179.2MB 3827ms 60ms graal/jvm 17.0.8
dart 3-m.dart 1184ms 23ms 270.9MB 3657ms 107ms dart/exe 3.7.3
java 3-m.java 1376ms 12ms 179.0MB 4323ms 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 228ms 9.3ms 186.8MB 540ms 70ms dart/exe 3.7.3
java 3-m.java 327ms 29ms 99.7MB 970ms 37ms openjdk 21
java 3-m.java 336ms 17ms 104.1MB 997ms 37ms openjdk 23
java 3-m.java 347ms 30ms 135.3MB 967ms 57ms graal/jvm 17.0.8
java 3-m.java 440ms 9.5ms 98.5MB 930ms 167ms openjdk/zgc 21

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 171ms 2.6ms 9.1MB 160ms 0ms dart/exe 3.7.3
dart 1.dart 491ms 3.1ms 9.4MB 477ms 0ms dart/exe 3.7.3

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 493ms 3.6ms 9.1MB 483ms 0ms dart/exe 3.7.3
dart 1.dart 1457ms 2.8ms 9.4MB 1440ms 10ms dart/exe 3.7.3

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 80ms 0.7ms 9.4MB 70ms 0ms dart/exe 3.7.3
dart 1.dart 110ms 1.1ms 8.6MB 100ms 0ms dart/exe 3.7.3

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 323ms 3.2ms 63.8MB 300ms 27ms dart/exe 3.7.3
java 1.java 404ms 4.9ms 534.3MB 500ms 93ms openjdk 23
java 1.java 406ms 4.3ms 679.8MB 490ms 90ms openjdk 21
java 1-m.java 408ms 8.7ms 626.3MB 617ms 97ms graal/jvm 17.0.8
java 1.java 1026ms 1.9ms 933.9MB 487ms 690ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 84ms 0.3ms 43.8MB 60ms 17ms dart/exe 3.7.3
java 1-m.java 167ms 1.6ms 206.1MB 240ms 43ms openjdk 21
java 1-m.java 168ms 1.1ms 158.3MB 247ms 40ms openjdk 23
java 1-m.java 216ms 12ms 253.2MB 367ms 60ms graal/jvm 17.0.8
java 1.java 419ms 8.2ms 341.9MB 217ms 280ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 407ms 2.9ms 6.3MB 400ms 0ms dart/exe 3.7.3
java 1.java 445ms 0.4ms 45.0MB 490ms 13ms openjdk 21
java 1.java 446ms 3.8ms 48.4MB 477ms 20ms openjdk 23
java 1.java 447ms 2.3ms 82.2MB 477ms 27ms graal/jvm 17.0.8
java 1.java 577ms 2.1ms 44.8MB 497ms 140ms openjdk/zgc 21
java 2.java 1252ms 5.6ms 639.9MB 1390ms 87ms openjdk 21
java 2.java 1277ms 19ms 794.0MB 1390ms 113ms openjdk 23
java 2.java 3274ms 53ms 2445.6MB 1653ms 1830ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 3.dart 45ms 0.5ms 6.5MB 40ms 0ms dart/exe 3.7.3
java 1.java 120ms 4.0ms 48.0MB 153ms 20ms openjdk 23
java 1.java 122ms 2.1ms 44.9MB 167ms 13ms openjdk 21
java 1-m.java 123ms 4.2ms 81.5MB 157ms 33ms graal/jvm 17.0.8
java 1.java 249ms 3.8ms 44.9MB 157ms 147ms openjdk/zgc 21
java 2-m.java 302ms 22ms 344.8MB 437ms 53ms openjdk 21
java 2-m.java 313ms 7.2ms 400.0MB 443ms 70ms openjdk 23
java 2.java 684ms 17ms 532.7MB 467ms 407ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 1353ms 16ms 14.9MB 1320ms 33ms dart/exe 3.7.3
java 1.java 3209ms 4.7ms 445.5MB 3633ms 100ms graal/jvm 17.0.8
java 1.java 3722ms 68ms 433.0MB 4600ms 107ms openjdk 21
java 1.java 3750ms 35ms 408.8MB 4670ms 107ms openjdk 23
java 1.java timeout 0.0ms 1830.0MB 4663ms 1203ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 2.dart 333ms 6.3ms 14.8MB 317ms 10ms dart/exe 3.7.3
java 1.java 888ms 5.7ms 448.3MB 1230ms 87ms graal/jvm 17.0.8
java 1-m.java 985ms 9.3ms 423.2MB 1833ms 87ms openjdk 21
java 1-m.java 1005ms 39ms 488.4MB 1760ms 110ms openjdk 23
java 1.java 1983ms 5.7ms 1312.1MB 1770ms 1033ms 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.1MB 4980ms 57ms dart/exe 3.7.3
java 3.java timeout 0.0ms 399.2MB 5400ms 90ms graal/jvm 17.0.8
java 3.java timeout 0.0ms 302.2MB 5327ms 60ms openjdk 21
java 3.java timeout 0.0ms 305.0MB 5323ms 63ms openjdk 23
java 3.java timeout 0.0ms 468.6MB 4970ms 293ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 582ms 23ms 43.1MB 553ms 13ms dart/exe 3.7.3
java 3-m.java 772ms 8.0ms 176.1MB 1150ms 57ms graal/jvm 17.0.8
java 3-m.java 798ms 9.3ms 128.8MB 1187ms 37ms openjdk 21
java 3-m.java 805ms 18ms 132.4MB 1233ms 43ms openjdk 23
java 3.java 985ms 10ms 133.8MB 1160ms 190ms 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 1987ms 7.3ms 47.4MB 7587ms 27ms openjdk 21
java 2-m.java 2001ms 11ms 48.8MB 7653ms 27ms openjdk 23
java 2-m.java 2120ms 12ms 45.2MB 7633ms 150ms openjdk/zgc 21
java 2-m.java 2521ms 48ms 94.9MB 9407ms 50ms graal/jvm 17.0.8
dart 1.dart 3808ms 27ms 6.5MB 3793ms 0ms dart/exe 3.7.3
dart 2.dart 4346ms 9.0ms 6.4MB 4337ms 0ms dart/exe 3.7.3

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 605ms 4.2ms 47.7MB 2140ms 20ms openjdk 21
java 2-m.java 617ms 2.8ms 48.8MB 2187ms 20ms openjdk 23
java 2-m.java 732ms 8.1ms 45.3MB 2153ms 147ms openjdk/zgc 21
java 2-m.java 776ms 4.7ms 95.1MB 2737ms 43ms graal/jvm 17.0.8
dart 1.dart 946ms 2.6ms 6.3MB 933ms 0ms dart/exe 3.7.3
dart 2.dart 1093ms 4.1ms 6.3MB 1083ms 0ms dart/exe 3.7.3

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 240ms 0.4ms 6.3MB 230ms 0ms dart/exe 3.7.3
java 2-m.java 248ms 5.2ms 47.7MB 723ms 20ms openjdk 21
java 2-m.java 267ms 4.0ms 48.4MB 787ms 20ms openjdk 23
dart 2.dart 277ms 1.0ms 6.3MB 270ms 0ms dart/exe 3.7.3
java 2-m.java 323ms 9.1ms 94.0MB 987ms 43ms graal/jvm 17.0.8
java 2-m.java 387ms 8.0ms 45.5MB 783ms 147ms openjdk/zgc 21