Go VS Java benchmarks

Current benchmark data was generated on Sun Dec 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 471ms 5.6ms 648.0MB 570ms 103ms openjdk 23
java 2-m.java 482ms 17ms 645.0MB 687ms 103ms graal/jvm 17.0.8
java 2.java 530ms 1.5ms 571.1MB 573ms 137ms openjdk 21
java 2.java 1186ms 22ms 1052.1MB 590ms 767ms openjdk/zgc 21
go 1-m.go 2710ms 23ms 43.6MB 5730ms 53ms go 1.23.3
go 1.go 3491ms 59ms 52.2MB 3473ms 3ms tinygo 0.34.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 128ms 1.7ms 166.9MB 153ms 33ms openjdk 21
java 2.java 130ms 5.1ms 98.0MB 157ms 37ms openjdk 23
java 2-m.java 157ms 17ms 230.2MB 233ms 53ms graal/jvm 17.0.8
go 1.go 229ms 5.1ms 5.6MB 213ms 0ms tinygo 0.34.0
go 1-m.go 238ms 2.0ms 8.2MB 400ms 7ms go 1.23.3
java 2.java 309ms 7.0ms 243.6MB 153ms 207ms openjdk/zgc 21

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-m.go 475ms 53ms 15.6MB 1840ms 0ms go 1.23.3
go 1.go 1414ms 6.0ms 256.2MB 1393ms 7ms tinygo 0.34.0
java 1-m.java 1892ms 152ms 260.4MB 7077ms 137ms openjdk 21
java 1-m.java 2285ms 225ms 241.9MB 8653ms 137ms openjdk 23
java 1-m.java 2814ms 339ms 1205.1MB 8973ms 1127ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-m.go 40ms 5.4ms 7.5MB 123ms 0ms go 1.23.3
go 1.go 257ms 2.0ms 66.7MB 240ms 0ms tinygo 0.34.0
java 1-m.java 407ms 11ms 119.1MB 1330ms 63ms openjdk 21
java 1-m.java 425ms 21ms 91.8MB 1383ms 57ms openjdk 23
java 1-m.java 663ms 29ms 209.0MB 1780ms 253ms openjdk/zgc 21

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 119ms 0.4ms 8.4MB 110ms 0ms go 1.23.3
java 1-m.java 586ms 39ms 264.1MB 1630ms 67ms openjdk 21
java 1-m.java 603ms 30ms 227.8MB 1633ms 67ms openjdk 23
java 1-m.java 623ms 39ms 404.3MB 1197ms 110ms graal/jvm 17.0.8
java 1-m.java 944ms 27ms 514.3MB 1567ms 430ms openjdk/zgc 21

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 36ms 1.0ms 8.3MB 27ms 0ms go 1.23.3
java 1-m.java 299ms 8.0ms 230.9MB 583ms 73ms graal/jvm 17.0.8
java 1-m.java 343ms 18ms 178.5MB 930ms 43ms openjdk 21
java 1-m.java 394ms 8.3ms 112.4MB 1053ms 53ms openjdk 23
java 1-m.java 493ms 2.1ms 215.3MB 953ms 217ms openjdk/zgc 21

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3-m.go 737ms 23ms 5.5MB 2773ms 7ms go 1.23.3
java 1-m.java 897ms 23ms 100.1MB 3263ms 53ms graal/jvm 17.0.8
java 1-m.java 965ms 57ms 50.0MB 3537ms 20ms openjdk 23
java 1-m.java 983ms 6.8ms 49.0MB 3597ms 37ms openjdk 21
java 1-m.java 1043ms 9.0ms 46.1MB 3407ms 143ms openjdk/zgc 21
go 3.go 2272ms 8.6ms 50.2MB 2253ms 0ms tinygo 0.34.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3-m.go 75ms 0.6ms 5.5MB 200ms 3ms go 1.23.3
java 1-m.java 180ms 5.5ms 48.5MB 493ms 23ms openjdk 21
java 1-m.java 194ms 5.8ms 50.1MB 480ms 23ms openjdk 23
java 1-m.java 202ms 11ms 101.4MB 547ms 33ms graal/jvm 17.0.8
java 1-m.java 295ms 2.3ms 45.7MB 483ms 137ms openjdk/zgc 21
go 3.go 485ms 0.5ms 50.2MB 470ms 3ms tinygo 0.34.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3-m.go 128ms 0.9ms 5.4MB 397ms 3ms go 1.23.3
java 4.java 457ms 0.7ms 47.4MB 543ms 20ms openjdk 21
java 4-m.java 462ms 19ms 104.6MB 670ms 43ms graal/jvm 17.0.8
java 4.java 466ms 9.2ms 49.3MB 567ms 17ms openjdk 23
java 4.java 568ms 6.1ms 47.0MB 550ms 133ms openjdk/zgc 21

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3-m.go 18ms 0.2ms 5.5MB 37ms 0ms go 1.23.3
java 4-m.java 124ms 4.1ms 87.9MB 163ms 30ms graal/jvm 17.0.8
java 4.java 127ms 1.0ms 46.1MB 170ms 17ms openjdk 21
java 4.java 132ms 2.0ms 47.8MB 177ms 17ms openjdk 23
java 4.java 241ms 3.8ms 43.8MB 153ms 140ms openjdk/zgc 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 0.7ms 0.3ms 0.1MB 0ms 0ms tinygo 0.34.0
go 1.go 1.5ms 0.1ms 3.4MB 0ms 0ms go 1.23.3
java 1.java 68ms 3.0ms 59.0MB 70ms 20ms graal/jvm 17.0.8
java 1.java 73ms 4.6ms 44.8MB 74ms 22ms openjdk 23
java 1.java 77ms 1.6ms 43.8MB 76ms 20ms openjdk 21
java 1.java 187ms 4.1ms 44.6MB 82ms 128ms openjdk/zgc 21

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-http2.go 121ms 2.2ms 65.8MB 333ms 80ms go 1.23.3
go 1-m.go 469ms 13ms 178.2MB 657ms 693ms go 1.23.3
go 2-m.go 471ms 13ms 172.3MB 627ms 700ms go 1.23.3

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-http2.go 28ms 3.1ms 23.0MB 57ms 10ms go 1.23.3
go 1-m.go 96ms 6.3ms 36.5MB 77ms 127ms go 1.23.3
go 2-m.go 112ms 12ms 42.5MB 93ms 133ms go 1.23.3

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 2-ffi.go 45ms 1.4ms 40.7MB 40ms 0ms go 1.23.3
go 1.go 140ms 2.7ms 18.4MB 133ms 0ms go 1.23.3

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 2-ffi.go 243ms 4.9ms 150.6MB 227ms 37ms go 1.23.3
go 1.go 777ms 6.4ms 106.8MB 757ms 23ms go 1.23.3

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 7-m.go 794ms 3.9ms 40.6MB 2797ms 37ms go 1.23.3
java 3-m.java 992ms 16ms 155.1MB 3317ms 67ms openjdk 23
java 3-m.java 1000ms 78ms 127.5MB 3403ms 30ms openjdk 21
java 3-m.java 1150ms 14ms 183.6MB 3873ms 70ms graal/jvm 17.0.8
java 3-m.java 1444ms 61ms 180.9MB 4577ms 197ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 7-m.go 147ms 0.5ms 25.9MB 380ms 27ms go 1.23.3
java 3-m.java 332ms 16ms 101.3MB 963ms 43ms openjdk 21
java 3-m.java 345ms 27ms 89.8MB 977ms 67ms openjdk 23
java 3-m.java 361ms 32ms 141.0MB 980ms 53ms graal/jvm 17.0.8
java 3-m.java 440ms 3.1ms 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
go 3.go 132ms 1.8ms 3.4MB 123ms 0ms go 1.23.3
go 3.go 135ms 3.9ms 0.3MB 127ms 0ms tinygo 0.34.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3.go 380ms 0.4ms 3.4MB 370ms 0ms go 1.23.3
go 3.go 391ms 5.4ms 2.3MB 383ms 0ms tinygo 0.34.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3.go 68ms 0.8ms 5.4MB 57ms 0ms go 1.23.3
go 3.go 69ms 1.6ms 0.1MB 60ms 0ms tinygo 0.34.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1b.java 1164ms 9.6ms 54.3MB 1273ms 23ms openjdk 21
java 1b.java 1171ms 5.3ms 55.9MB 1297ms 20ms openjdk 23
java 1b.java 1181ms 39ms 108.6MB 1363ms 33ms graal/jvm 17.0.8
java 1.java 1260ms 13ms 139.9MB 1367ms 57ms graal/jvm 17.0.8
java 1b.java 1278ms 21ms 51.4MB 1277ms 130ms openjdk/zgc 21
java 1a.java 1654ms 9.2ms 54.9MB 1747ms 27ms openjdk 21
java 1a.java 1665ms 2.2ms 55.5MB 1770ms 27ms openjdk 23
java 1a.java 1688ms 16ms 105.6MB 1807ms 37ms graal/jvm 17.0.8
java 1.java 1701ms 1.3ms 202.3MB 1780ms 37ms openjdk 21
java 1.java 1709ms 2.1ms 314.7MB 1770ms 53ms openjdk 23
java 1a.java 1780ms 5.2ms 53.7MB 1753ms 147ms openjdk/zgc 21
java 1.java 2351ms 5.1ms 853.8MB 1813ms 637ms openjdk/zgc 21
go 1.go 2674ms 30ms 7.4MB 2667ms 0ms go 1.23.3
go 1.go 4013ms 30ms 5.4MB 4000ms 0ms tinygo 0.34.0
java 2.java timeout 0.0ms 606.2MB 5250ms 140ms openjdk 21
java 2.java timeout 0.0ms 772.9MB 5320ms 140ms openjdk 23
java 2.java timeout 0.0ms 3284.3MB 3460ms 1913ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 113ms 1.1ms 3.4MB 100ms 0ms go 1.23.3
go 1.go 169ms 3.0ms 0.3MB 160ms 0ms tinygo 0.34.0
java 1b-m.java 181ms 13ms 49.6MB 290ms 20ms openjdk 21
java 1.java 196ms 12ms 82.1MB 267ms 27ms openjdk 21
java 1b-m.java 198ms 8.9ms 51.2MB 310ms 20ms openjdk 23
java 1a-m.java 199ms 3.5ms 50.3MB 310ms 17ms openjdk 21
java 1-m.java 200ms 2.7ms 87.0MB 277ms 33ms openjdk 23
java 1a-m.java 201ms 5.5ms 52.1MB 303ms 20ms openjdk 23
java 1-m.java 204ms 14ms 115.4MB 317ms 40ms graal/jvm 17.0.8
java 1a-m.java 211ms 6.8ms 102.6MB 307ms 50ms graal/jvm 17.0.8
java 1b-m.java 233ms 15ms 104.0MB 400ms 40ms graal/jvm 17.0.8
java 1b.java 308ms 1.6ms 49.4MB 303ms 137ms openjdk/zgc 21
java 1a.java 315ms 3.0ms 49.9MB 300ms 133ms openjdk/zgc 21
java 1.java 338ms 4.9ms 116.4MB 270ms 160ms openjdk/zgc 21
java 2-m.java 579ms 14ms 826.3MB 843ms 127ms openjdk 23
java 2-m.java 621ms 39ms 586.7MB 887ms 127ms openjdk 21
java 2.java 1590ms 18ms 1349.9MB 863ms 1037ms openjdk/zgc 21

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 401ms 2.9ms 679.9MB 473ms 90ms openjdk 21
java 1.java 405ms 5.1ms 539.3MB 507ms 87ms openjdk 23
java 1-m.java 417ms 30ms 635.2MB 610ms 123ms graal/jvm 17.0.8
java 1.java 1094ms 19ms 989.4MB 447ms 767ms openjdk/zgc 21
go 1-m.go 1640ms 27ms 40.9MB 3297ms 47ms go 1.23.3
go 2-m.go 1886ms 10ms 43.0MB 3980ms 47ms go 1.23.3
go 1.go 1934ms 5.2ms 52.1MB 1923ms 0ms tinygo 0.34.0
go 2.go 3292ms 35ms 90.4MB 3277ms 0ms tinygo 0.34.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 166ms 3.4ms 159.1MB 243ms 40ms openjdk 23
java 1-m.java 166ms 2.4ms 206.3MB 243ms 40ms openjdk 21
java 1-m.java 225ms 28ms 258.5MB 380ms 57ms graal/jvm 17.0.8
go 1-m.go 365ms 2.1ms 14.1MB 707ms 20ms go 1.23.3
go 1.go 383ms 2.4ms 13.4MB 367ms 0ms tinygo 0.34.0
go 2-m.go 412ms 1.3ms 14.1MB 833ms 33ms go 1.23.3
java 1.java 442ms 45ms 341.6MB 223ms 290ms openjdk/zgc 21
go 2.go 634ms 12ms 29.7MB 623ms 0ms tinygo 0.34.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 344ms 0.4ms 0.1MB 337ms 0ms tinygo 0.34.0
go 1.go 361ms 1.5ms 3.4MB 347ms 0ms go 1.23.3
java 1.java 443ms 2.2ms 45.3MB 480ms 13ms openjdk 21
java 1.java 448ms 1.5ms 48.5MB 483ms 20ms openjdk 23
java 1.java 450ms 4.6ms 83.3MB 477ms 30ms graal/jvm 17.0.8
java 1.java 569ms 1.3ms 46.9MB 493ms 137ms openjdk/zgc 21
java 2.java 1248ms 2.9ms 611.8MB 1370ms 97ms openjdk 21
java 2.java 1255ms 4.8ms 780.5MB 1383ms 97ms openjdk 23
java 2.java 3283ms 56ms 2413.4MB 1647ms 1847ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 38ms 0.6ms 0.1MB 30ms 0ms tinygo 0.34.0
go 1.go 40ms 1.0ms 3.4MB 30ms 0ms go 1.23.3
java 1.java 120ms 2.1ms 87.3MB 137ms 37ms graal/jvm 17.0.8
java 1.java 121ms 1.0ms 45.4MB 163ms 17ms openjdk 21
java 1.java 123ms 1.3ms 48.3MB 157ms 13ms openjdk 23
java 1.java 245ms 0.4ms 44.9MB 160ms 140ms openjdk/zgc 21
java 2-m.java 307ms 2.9ms 343.0MB 450ms 57ms openjdk 21
java 2-m.java 313ms 5.4ms 387.7MB 447ms 67ms openjdk 23
java 2.java 704ms 8.8ms 536.4MB 473ms 420ms openjdk/zgc 21

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 312ms 0.7ms 73.6MB 293ms 3ms go 1.23.3
go 1.go 318ms 4.6ms 42.9MB 307ms 0ms tinygo 0.34.0
java 1.java 420ms 1.7ms 118.1MB 460ms 20ms openjdk 23
go 2.go 432ms 2.1ms 18.0MB 420ms 0ms tinygo 0.34.0
java 1.java 432ms 8.9ms 115.2MB 487ms 20ms openjdk 21
java 1.java 604ms 2.3ms 112.6MB 513ms 163ms openjdk/zgc 21
java 1-m.java 703ms 85ms 239.9MB 1043ms 80ms graal/jvm 17.0.8
java 2.java 781ms 3.3ms 60.6MB 833ms 13ms openjdk 23
go 2.go 787ms 2.3ms 21.9MB 780ms 0ms go 1.23.3
java 2.java 789ms 8.6ms 57.0MB 850ms 20ms openjdk 21
java 2.java 844ms 0.9ms 55.1MB 773ms 147ms openjdk/zgc 21
java 2-m.java 1312ms 74ms 240.5MB 2287ms 103ms graal/jvm 17.0.8

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 57ms 0.9ms 13.7MB 47ms 0ms tinygo 0.34.0
go 1.go 60ms 4.2ms 21.6MB 50ms 0ms go 1.23.3
go 2.go 117ms 6.5ms 5.9MB 107ms 0ms tinygo 0.34.0
java 1.java 158ms 0.5ms 68.0MB 200ms 23ms openjdk 23
java 1.java 164ms 12ms 64.9MB 210ms 27ms openjdk 21
go 2.go 196ms 2.3ms 6.3MB 183ms 0ms go 1.23.3
java 1-m.java 247ms 12ms 144.7MB 343ms 60ms graal/jvm 17.0.8
java 2.java 260ms 4.2ms 50.2MB 320ms 23ms openjdk 21
java 2.java 264ms 2.9ms 50.4MB 313ms 23ms openjdk 23
java 1.java 288ms 1.8ms 61.6MB 210ms 147ms openjdk/zgc 21
java 2.java 368ms 4.5ms 49.4MB 317ms 130ms openjdk/zgc 21
java 2-m.java 474ms 5.2ms 194.3MB 823ms 70ms graal/jvm 17.0.8

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 8.go 1129ms 4.6ms 8.4MB 1110ms 7ms go 1.23.3
java 1.java 3200ms 37ms 447.4MB 3680ms 97ms graal/jvm 17.0.8
java 1.java 3677ms 90ms 388.1MB 4527ms 123ms openjdk 23
java 1.java 3700ms 76ms 423.2MB 4547ms 120ms openjdk 21
java 1.java timeout 0.0ms 2012.2MB 4660ms 1187ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 8.go 272ms 4.4ms 8.4MB 263ms 0ms go 1.23.3
java 1-m.java 918ms 18ms 448.8MB 1310ms 90ms graal/jvm 17.0.8
java 1-m.java 1015ms 31ms 352.4MB 1803ms 90ms openjdk 21
java 1-m.java 1038ms 10ms 370.6MB 1787ms 90ms openjdk 23
java 1.java 2036ms 48ms 1391.2MB 1720ms 1087ms openjdk/zgc 21

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 3.go timeout 0.0ms 122.2MB 4977ms 47ms go 1.23.3
go 3.go timeout 0.0ms 104.3MB 4980ms 3ms tinygo 0.34.0
java 3.java timeout 0.0ms 408.6MB 5413ms 107ms graal/jvm 17.0.8
java 3.java timeout 0.0ms 302.3MB 5323ms 63ms openjdk 21
java 3.java timeout 0.0ms 304.9MB 5340ms 50ms openjdk 23
java 3.java timeout 0.0ms 469.2MB 4963ms 290ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 799ms 12ms 133.4MB 1223ms 20ms openjdk 21
java 3-m.java 812ms 4.9ms 182.3MB 1223ms 57ms graal/jvm 17.0.8
java 3-m.java 825ms 12ms 132.6MB 1253ms 30ms openjdk 23
java 3.java 988ms 40ms 134.2MB 1170ms 193ms openjdk/zgc 21
go 3.go 1824ms 69ms 20.0MB 1810ms 20ms go 1.23.3
go 3.go 2414ms 11ms 29.9MB 2403ms 0ms tinygo 0.34.0

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 0-ffi.go 141ms 1.8ms 13.5MB 130ms 3ms go 1.23.3

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 0-ffi.go 47ms 0.4ms 12.0MB 37ms 0ms go 1.23.3

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 4-m.go 1907ms 17ms 5.4MB 7330ms 10ms go 1.23.3
java 2-m.java 1952ms 6.8ms 47.7MB 7430ms 20ms openjdk 21
java 2-m.java 1972ms 7.8ms 48.4MB 7477ms 27ms openjdk 23
java 2-m.java 2092ms 3.1ms 45.2MB 7480ms 157ms openjdk/zgc 21
java 2-m.java 2443ms 23ms 101.0MB 8710ms 50ms graal/jvm 17.0.8
go 1.go 3680ms 35ms 5.4MB 3673ms 0ms go 1.23.3
go 1.go timeout 0.0ms 0.5MB 4990ms 0ms tinygo 0.34.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 4-m.go 479ms 0.2ms 5.5MB 1817ms 3ms go 1.23.3
java 2-m.java 595ms 4.1ms 49.1MB 2077ms 30ms openjdk 23
java 2-m.java 595ms 6.5ms 47.6MB 2087ms 20ms openjdk 21
java 2-m.java 718ms 4.6ms 47.3MB 2043ms 143ms openjdk/zgc 21
java 2-m.java 738ms 17ms 99.2MB 2487ms 33ms graal/jvm 17.0.8
go 1.go 934ms 5.6ms 3.4MB 927ms 0ms go 1.23.3
go 1.go 1390ms 1.4ms 0.4MB 1380ms 0ms tinygo 0.34.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 4-m.go 126ms 0.7ms 5.4MB 447ms 0ms go 1.23.3
go 1.go 234ms 4.3ms 3.4MB 223ms 0ms go 1.23.3
java 2-m.java 238ms 1.1ms 47.6MB 670ms 33ms openjdk 21
java 2-m.java 246ms 2.6ms 48.9MB 710ms 23ms openjdk 23
java 2-m.java 277ms 22ms 96.4MB 793ms 27ms graal/jvm 17.0.8
go 1.go 349ms 0.1ms 0.3MB 340ms 0ms tinygo 0.34.0
java 2-m.java 370ms 2.2ms 47.2MB 717ms 143ms openjdk/zgc 21