Typescript VS Java benchmarks

Current benchmark data was generated on Mon Apr 14 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 461ms 12ms 574.0MB 563ms 83ms openjdk 21
java 2.java 480ms 4.7ms 624.4MB 600ms 97ms openjdk 23
java 2-m.java 481ms 6.8ms 642.9MB 670ms 120ms graal/jvm 17.0.8
typescript 1.ts 1061ms 15ms 470.5MB 1007ms 203ms deno 2.2.9
java 2.java 1174ms 6.5ms 1067.3MB 593ms 750ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 125ms 2.4ms 165.6MB 157ms 30ms openjdk 21
typescript 1.ts 131ms 3.6ms 78.5MB 133ms 27ms deno 2.2.9
java 2.java 135ms 5.3ms 96.2MB 173ms 27ms openjdk 23
java 2-m.java 150ms 5.9ms 224.4MB 227ms 53ms graal/jvm 17.0.8
java 2.java 304ms 2.2ms 241.6MB 157ms 203ms openjdk/zgc 21

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1155ms 1.4ms 118.5MB 1147ms 53ms deno 2.2.9
java 1-m.java 2190ms 231ms 262.9MB 8233ms 147ms openjdk 21
java 1-m.java 2460ms 195ms 242.5MB 9323ms 150ms openjdk 23
java 1-m.java 2832ms 160ms 1240.0MB 9087ms 1107ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 147ms 0.7ms 68.8MB 127ms 20ms deno 2.2.9
java 1-m.java 447ms 11ms 94.5MB 1460ms 67ms openjdk 23
java 1-m.java 509ms 45ms 129.8MB 1697ms 60ms openjdk 21
java 1-m.java 673ms 33ms 223.7MB 1810ms 260ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 446ms 6.7ms 102.7MB 630ms 37ms graal/jvm 17.0.8
java 4.java 453ms 2.9ms 47.7MB 537ms 17ms openjdk 21
java 4.java 462ms 5.5ms 49.0MB 553ms 20ms openjdk 23
java 4.java 574ms 8.7ms 45.3MB 550ms 140ms openjdk/zgc 21
typescript 1.ts 2070ms 3.3ms 57.5MB 1927ms 150ms deno 2.2.9

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 125ms 2.4ms 46.7MB 167ms 20ms openjdk 21
java 4.java 134ms 2.5ms 47.9MB 180ms 20ms openjdk 23
java 4-m.java 134ms 4.6ms 91.8MB 193ms 37ms graal/jvm 17.0.8
typescript 1.ts 243ms 2.5ms 57.9MB 227ms 20ms deno 2.2.9
java 4.java 250ms 3.6ms 43.9MB 170ms 137ms openjdk/zgc 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 26ms 0.7ms 44.0MB 10ms 6ms deno 2.2.9
java 1.java 63ms 1.5ms 52.7MB 70ms 20ms graal/jvm 17.0.8
java 1.java 72ms 3.3ms 44.4MB 74ms 20ms openjdk 23
java 1.java 73ms 1.7ms 43.8MB 80ms 14ms openjdk 21
java 1.java 193ms 6.2ms 43.0MB 84ms 140ms openjdk/zgc 21

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1-m.ts 659ms 2.9ms 239.1MB 617ms 423ms deno 2.2.9
typescript 2-m.ts 672ms 13ms 238.7MB 610ms 443ms deno 2.2.9
typescript 1-http2.ts 827ms 6.8ms 232.1MB 750ms 430ms deno 2.2.9
typescript 2-tls.ts 1394ms 16ms 262.4MB 1250ms 517ms deno 2.2.9

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 166ms 3.4ms 91.4MB 127ms 87ms deno 2.2.9
typescript 1.ts 167ms 1.5ms 91.0MB 123ms 93ms deno 2.2.9
typescript 1-http2.ts 210ms 1.4ms 93.6MB 157ms 97ms deno 2.2.9
typescript 2-tls.ts 349ms 2.2ms 98.3MB 280ms 120ms deno 2.2.9

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 168ms 0.7ms 91.2MB 163ms 33ms deno 2.2.9

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1221ms 24ms 416.6MB 1347ms 153ms deno 2.2.9

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 277ms 1.9ms 62.1MB 267ms 17ms deno 2.2.9
typescript 1.ts 580ms 4.5ms 61.1MB 560ms 13ms deno 2.2.9

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 748ms 4.0ms 70.2MB 733ms 20ms deno 2.2.9
typescript 1.ts 1664ms 5.6ms 67.6MB 1640ms 13ms deno 2.2.9

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 143ms 2.0ms 58.4MB 133ms 10ms deno 2.2.9
typescript 1.ts 175ms 2.4ms 56.8MB 163ms 10ms deno 2.2.9

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 413ms 2.5ms 537.5MB 517ms 87ms openjdk 23
java 1.java 423ms 5.1ms 677.8MB 480ms 113ms openjdk 21
java 1-m.java 427ms 10ms 641.7MB 603ms 127ms graal/jvm 17.0.8
typescript 1.ts 562ms 8.3ms 227.8MB 570ms 110ms deno 2.2.9
java 1.java 1047ms 30ms 965.9MB 463ms 723ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 157ms 1.0ms 97.6MB 157ms 33ms deno 2.2.9
java 1-m.java 171ms 3.8ms 206.1MB 240ms 50ms openjdk 21
java 1-m.java 171ms 0.9ms 158.6MB 250ms 43ms openjdk 23
java 1-m.java 215ms 11ms 253.5MB 353ms 63ms graal/jvm 17.0.8
java 1.java 424ms 13ms 341.9MB 223ms 283ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 449ms 6.5ms 81.4MB 477ms 30ms graal/jvm 17.0.8
java 1.java 451ms 0.4ms 48.3MB 487ms 17ms openjdk 23
java 1.java 457ms 15ms 45.3MB 490ms 17ms openjdk 21
typescript 6.ts 470ms 5.7ms 54.0MB 457ms 7ms deno 2.2.9
java 1.java 571ms 1.4ms 44.9MB 493ms 137ms openjdk/zgc 21
java 2.java 1260ms 11ms 640.1MB 1390ms 87ms openjdk 21
java 2.java 1275ms 9.1ms 826.3MB 1380ms 123ms openjdk 23
java 2.java 3279ms 125ms 2446.0MB 1647ms 1853ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 77ms 1.0ms 54.5MB 63ms 10ms deno 2.2.9
java 1.java 118ms 2.8ms 81.5MB 143ms 30ms graal/jvm 17.0.8
java 1.java 123ms 2.0ms 45.2MB 163ms 20ms openjdk 21
java 1.java 124ms 4.2ms 48.2MB 157ms 20ms openjdk 23
java 1.java 251ms 4.1ms 44.9MB 173ms 140ms openjdk/zgc 21
java 2-m.java 305ms 5.3ms 394.5MB 447ms 60ms openjdk 21
java 2-m.java 328ms 5.1ms 392.1MB 470ms 70ms openjdk 23
java 2.java 687ms 2.7ms 524.4MB 477ms 407ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 3224ms 1.3ms 443.5MB 3647ms 100ms graal/jvm 17.0.8
java 1.java 3724ms 86ms 425.6MB 4620ms 100ms openjdk 21
java 1.java 3773ms 21ms 441.7MB 4677ms 123ms openjdk 23
typescript 3.ts 4928ms 16ms 133.1MB 4820ms 150ms deno 2.2.9
java 1.java timeout 0.0ms 1810.6MB 4800ms 1133ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 896ms 7.7ms 441.5MB 1250ms 83ms graal/jvm 17.0.8
java 1-m.java 1025ms 8.5ms 437.3MB 1870ms 107ms openjdk 23
java 1-m.java 1037ms 25ms 375.5MB 1830ms 100ms openjdk 21
typescript 3.ts 1131ms 3.5ms 77.1MB 1083ms 67ms deno 2.2.9
java 1.java 2051ms 1.9ms 1354.1MB 1723ms 1100ms openjdk/zgc 21

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1902ms 8.2ms 56.8MB 1910ms 13ms deno 2.2.9

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 510ms 2.7ms 55.5MB 513ms 10ms deno 2.2.9

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1996ms 8.8ms 47.7MB 7623ms 27ms openjdk 21
java 2-m.java 2011ms 5.1ms 48.3MB 7643ms 27ms openjdk 23
java 2-m.java 2140ms 20ms 45.4MB 7653ms 150ms openjdk/zgc 21
java 2-m.java 2509ms 8.6ms 94.2MB 9357ms 43ms graal/jvm 17.0.8
typescript 7.ts 4033ms 4.4ms 54.0MB 4017ms 10ms deno 2.2.9

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 607ms 5.8ms 47.6MB 2140ms 23ms openjdk 21
java 2-m.java 621ms 7.5ms 48.9MB 2170ms 23ms openjdk 23
java 2-m.java 743ms 7.4ms 45.4MB 2183ms 143ms openjdk/zgc 21
java 2-m.java 769ms 3.8ms 95.1MB 2703ms 37ms graal/jvm 17.0.8
typescript 7.ts 1037ms 4.4ms 54.7MB 1020ms 7ms deno 2.2.9

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 248ms 3.4ms 47.9MB 757ms 17ms openjdk 21
java 2-m.java 270ms 8.8ms 48.8MB 790ms 27ms openjdk 23
typescript 7.ts 284ms 2.0ms 54.4MB 270ms 10ms deno 2.2.9
java 2-m.java 321ms 25ms 94.1MB 983ms 40ms graal/jvm 17.0.8
java 2-m.java 400ms 6.1ms 45.6MB 820ms 153ms openjdk/zgc 21