Typescript VS Java benchmarks

Current benchmark data was generated on Thu May 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 458ms 2.1ms 574.1MB 557ms 83ms openjdk 21
java 2.java 472ms 4.2ms 620.6MB 573ms 107ms openjdk 23
java 2-m.java 478ms 13ms 644.0MB 667ms 127ms graal/jvm 17.0.8
typescript 1.ts 1067ms 12ms 466.8MB 997ms 217ms deno 2.3.1
java 2.java 1199ms 18ms 1054.6MB 590ms 770ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 124ms 1.9ms 98.4MB 163ms 30ms openjdk 23
java 2-m.java 127ms 2.5ms 167.1MB 160ms 30ms openjdk 21
typescript 1.ts 129ms 2.3ms 78.9MB 127ms 27ms deno 2.3.1
java 2-m.java 144ms 4.4ms 215.0MB 210ms 60ms graal/jvm 17.0.8
java 2.java 305ms 0.9ms 241.8MB 150ms 207ms 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 1280ms 29ms 118.4MB 1270ms 60ms deno 2.3.1
java 1-m.java 2287ms 150ms 261.9MB 8677ms 140ms openjdk 21
java 1-m.java 2399ms 22ms 242.5MB 9087ms 147ms openjdk 23
java 1-m.java 2760ms 47ms 1225.5MB 8833ms 1123ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 145ms 1.9ms 69.3MB 123ms 23ms deno 2.3.1
java 1-m.java 413ms 26ms 94.6MB 1330ms 63ms openjdk 23
java 1-m.java 490ms 23ms 120.6MB 1650ms 70ms openjdk 21
java 1-m.java 654ms 6.4ms 213.7MB 1737ms 257ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 447ms 14ms 101.1MB 630ms 40ms graal/jvm 17.0.8
java 4.java 452ms 0.4ms 47.6MB 537ms 13ms openjdk 21
java 4.java 456ms 3.6ms 49.3MB 543ms 17ms openjdk 23
java 4.java 563ms 4.9ms 45.3MB 527ms 140ms openjdk/zgc 21
typescript 1.ts 2066ms 6.2ms 56.5MB 1920ms 150ms deno 2.3.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4-m.java 122ms 1.7ms 89.0MB 170ms 33ms graal/jvm 17.0.8
java 4.java 123ms 0.6ms 46.6MB 160ms 20ms openjdk 21
java 4-m.java 126ms 2.9ms 48.3MB 173ms 20ms openjdk 23
typescript 1.ts 242ms 1.8ms 55.8MB 220ms 23ms deno 2.3.1
java 4.java 245ms 1.7ms 43.9MB 167ms 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.2ms 44.4MB 10ms 6ms deno 2.3.1
java 1.java 62ms 1.3ms 52.7MB 66ms 18ms graal/jvm 17.0.8
java 1.java 71ms 1.1ms 43.7MB 74ms 12ms openjdk 21
java 1.java 72ms 2.0ms 44.7MB 76ms 14ms openjdk 23
java 1.java 189ms 5.2ms 42.9MB 80ms 136ms openjdk/zgc 21

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2-m.ts 657ms 9.2ms 237.2MB 603ms 437ms deno 2.3.1
typescript 1-m.ts 659ms 9.6ms 238.0MB 613ms 433ms deno 2.3.1
typescript 1-http2.ts 808ms 1.8ms 228.0MB 747ms 420ms deno 2.3.1
typescript 2-tls.ts 1391ms 24ms 262.6MB 1270ms 497ms deno 2.3.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 167ms 1.9ms 92.1MB 127ms 90ms deno 2.3.1
typescript 2.ts 167ms 2.8ms 92.6MB 127ms 90ms deno 2.3.1
typescript 1-http2.ts 204ms 1.0ms 94.6MB 153ms 97ms deno 2.3.1
typescript 2-tls.ts 347ms 8.0ms 97.7MB 267ms 123ms deno 2.3.1

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 163ms 3.6ms 91.8MB 160ms 30ms deno 2.3.1

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1181ms 2.5ms 415.6MB 1300ms 143ms deno 2.3.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 274ms 4.0ms 62.8MB 263ms 13ms deno 2.3.1
typescript 1.ts 575ms 2.8ms 59.6MB 557ms 10ms deno 2.3.1

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 735ms 2.5ms 68.5MB 720ms 20ms deno 2.3.1
typescript 1.ts 1646ms 1.7ms 67.9MB 1620ms 17ms deno 2.3.1

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 142ms 1.0ms 56.8MB 130ms 13ms deno 2.3.1
typescript 1.ts 168ms 2.6ms 57.0MB 150ms 10ms deno 2.3.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 402ms 2.9ms 547.2MB 510ms 83ms openjdk 23
java 1.java 404ms 4.1ms 679.9MB 473ms 97ms openjdk 21
java 1-m.java 405ms 5.5ms 633.0MB 597ms 110ms graal/jvm 17.0.8
typescript 1.ts 560ms 9.4ms 227.2MB 560ms 110ms deno 2.3.1
java 1.java 1035ms 24ms 958.9MB 473ms 707ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 153ms 3.6ms 96.0MB 150ms 37ms deno 2.3.1
java 1-m.java 163ms 2.7ms 158.7MB 237ms 47ms openjdk 23
java 1-m.java 165ms 0.4ms 207.1MB 237ms 37ms openjdk 21
java 1-m.java 214ms 5.9ms 253.7MB 350ms 67ms graal/jvm 17.0.8
java 1.java 420ms 20ms 341.6MB 217ms 277ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 440ms 3.0ms 45.1MB 477ms 20ms openjdk 21
java 1.java 444ms 1.1ms 48.2MB 480ms 20ms openjdk 23
java 1.java 447ms 4.2ms 81.5MB 483ms 27ms graal/jvm 17.0.8
typescript 6.ts 469ms 5.6ms 55.9MB 453ms 3ms deno 2.3.1
java 1.java 570ms 5.4ms 44.7MB 497ms 133ms openjdk/zgc 21
java 2.java 1230ms 3.1ms 579.3MB 1353ms 83ms openjdk 21
java 2.java 1248ms 1.3ms 759.3MB 1357ms 110ms openjdk 23
java 2.java 3219ms 18ms 2343.5MB 1627ms 1803ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 77ms 0.2ms 54.1MB 63ms 10ms deno 2.3.1
java 1.java 119ms 2.0ms 45.2MB 157ms 20ms openjdk 21
java 1.java 120ms 1.7ms 48.4MB 157ms 20ms openjdk 23
java 1.java 125ms 4.1ms 81.6MB 153ms 33ms graal/jvm 17.0.8
java 1.java 243ms 3.0ms 44.8MB 167ms 140ms openjdk/zgc 21
java 2-m.java 286ms 3.4ms 356.7MB 417ms 53ms openjdk 21
java 2-m.java 310ms 7.8ms 413.9MB 440ms 70ms openjdk 23
java 2.java 684ms 9.8ms 530.4MB 453ms 420ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 3228ms 11ms 443.7MB 3627ms 103ms graal/jvm 17.0.8
java 1.java 3700ms 73ms 442.1MB 4620ms 113ms openjdk 23
java 1.java 3741ms 9.8ms 385.9MB 4627ms 113ms openjdk 21
typescript 3.ts 4922ms 34ms 131.3MB 4817ms 147ms deno 2.3.1
java 1.java timeout 0.0ms 1943.1MB 4667ms 1197ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 894ms 6.9ms 443.3MB 1253ms 90ms graal/jvm 17.0.8
java 1-m.java 987ms 25ms 365.4MB 1767ms 100ms openjdk 21
java 1-m.java 996ms 20ms 418.7MB 1797ms 107ms openjdk 23
typescript 3.ts 1128ms 5.5ms 78.3MB 1070ms 80ms deno 2.3.1
java 1.java 1998ms 39ms 1350.6MB 1717ms 1037ms openjdk/zgc 21

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1941ms 13ms 56.9MB 1947ms 10ms deno 2.3.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 536ms 7.3ms 55.8MB 540ms 10ms deno 2.3.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1991ms 5.9ms 47.8MB 7610ms 23ms openjdk 21
java 2-m.java 1993ms 9.7ms 48.4MB 7613ms 30ms openjdk 23
java 2-m.java 2124ms 14ms 45.4MB 7600ms 157ms openjdk/zgc 21
java 2-m.java 2505ms 22ms 93.6MB 9400ms 40ms graal/jvm 17.0.8
typescript 7.ts 4058ms 51ms 53.9MB 4040ms 10ms deno 2.3.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 600ms 7.0ms 47.8MB 2137ms 20ms openjdk 21
java 2-m.java 609ms 4.3ms 48.7MB 2157ms 23ms openjdk 23
java 2-m.java 729ms 2.4ms 45.4MB 2157ms 140ms openjdk/zgc 21
java 2-m.java 768ms 0.7ms 93.5MB 2703ms 37ms graal/jvm 17.0.8
typescript 7.ts 1036ms 5.5ms 56.1MB 1023ms 10ms deno 2.3.1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 251ms 5.6ms 47.5MB 753ms 17ms openjdk 21
java 2-m.java 258ms 5.3ms 48.9MB 763ms 20ms openjdk 23
typescript 7.ts 283ms 1.6ms 52.5MB 267ms 7ms deno 2.3.1
java 2-m.java 311ms 24ms 94.6MB 957ms 37ms graal/jvm 17.0.8
java 2-m.java 372ms 10ms 45.2MB 733ms 140ms openjdk/zgc 21