Typescript VS Java benchmarks

Current benchmark data was generated on Sun Jun 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 455ms 6.3ms 576.1MB 557ms 80ms openjdk 21
java 2-m.java 462ms 6.4ms 643.1MB 673ms 90ms graal/jvm 17.0.8
java 2.java 470ms 9.4ms 639.7MB 570ms 97ms openjdk 23
typescript 1.ts 1047ms 18ms 416.9MB 1003ms 190ms deno 2.3.5
java 2.java 1207ms 20ms 1063.7MB 580ms 793ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 124ms 1.6ms 167.0MB 157ms 27ms openjdk 21
java 2.java 129ms 5.5ms 98.0MB 163ms 23ms openjdk 23
typescript 1.ts 129ms 2.0ms 79.4MB 130ms 27ms deno 2.3.5
java 2-m.java 143ms 3.2ms 224.5MB 217ms 53ms graal/jvm 17.0.8
java 2.java 299ms 4.1ms 241.7MB 157ms 197ms 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 1264ms 4.4ms 121.7MB 1250ms 60ms deno 2.3.5
java 1-m.java 2098ms 184ms 258.2MB 7953ms 127ms openjdk 21
java 1-m.java 2459ms 233ms 242.9MB 9360ms 137ms openjdk 23
java 1-m.java 2764ms 212ms 1176.7MB 8893ms 1110ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 145ms 2.8ms 71.6MB 127ms 20ms deno 2.3.5
java 1-m.java 443ms 2.6ms 92.2MB 1470ms 60ms openjdk 23
java 1-m.java 479ms 10ms 129.7MB 1607ms 73ms openjdk 21
java 1-m.java 684ms 24ms 228.2MB 1873ms 250ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4-m.java 449ms 13ms 102.4MB 637ms 37ms graal/jvm 17.0.8
java 4.java 456ms 17ms 47.5MB 543ms 17ms openjdk 21
java 4.java 458ms 1.4ms 49.3MB 540ms 20ms openjdk 23
java 4.java 569ms 8.4ms 45.4MB 537ms 140ms openjdk/zgc 21
typescript 1.ts 2077ms 9.2ms 58.6MB 1967ms 117ms deno 2.3.5

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 121ms 1.3ms 46.2MB 157ms 23ms openjdk 21
java 4.java 126ms 2.1ms 47.7MB 167ms 17ms openjdk 23
java 4-m.java 134ms 6.0ms 91.7MB 200ms 27ms graal/jvm 17.0.8
typescript 1.ts 244ms 3.7ms 58.0MB 227ms 23ms deno 2.3.5
java 4.java 251ms 9.3ms 43.9MB 163ms 147ms 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.7MB 10ms 4ms deno 2.3.5
java 1.java 62ms 2.4ms 52.7MB 68ms 18ms graal/jvm 17.0.8
java 1.java 69ms 6.7ms 43.8MB 78ms 12ms openjdk 21
java 1.java 73ms 1.7ms 44.5MB 74ms 16ms openjdk 23
java 1.java 184ms 2.0ms 42.9MB 80ms 132ms 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 636ms 4.3ms 237.5MB 590ms 410ms deno 2.3.5
typescript 1-m.ts 656ms 7.8ms 242.8MB 633ms 397ms deno 2.3.5
typescript 1-http2.ts 776ms 4.9ms 231.1MB 757ms 373ms deno 2.3.5
typescript 2-tls.ts 1377ms 3.6ms 265.1MB 1247ms 493ms deno 2.3.5

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 162ms 1.7ms 92.7MB 113ms 93ms deno 2.3.5
typescript 1.ts 165ms 2.2ms 92.3MB 120ms 90ms deno 2.3.5
typescript 1-http2.ts 205ms 1.4ms 94.4MB 157ms 87ms deno 2.3.5
typescript 2-tls.ts 337ms 11ms 99.4MB 280ms 103ms deno 2.3.5

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 160ms 5.7ms 93.2MB 160ms 30ms deno 2.3.5

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1186ms 8.4ms 414.0MB 1300ms 147ms deno 2.3.5

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 288ms 12ms 62.9MB 273ms 17ms deno 2.3.5
typescript 1.ts 585ms 3.6ms 61.6MB 567ms 13ms deno 2.3.5

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 736ms 4.6ms 71.3MB 723ms 17ms deno 2.3.5
typescript 1.ts 1682ms 3.4ms 69.1MB 1660ms 20ms deno 2.3.5

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 149ms 3.4ms 59.9MB 140ms 10ms deno 2.3.5
typescript 1.ts 168ms 0.4ms 59.2MB 150ms 10ms deno 2.3.5

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 398ms 1.9ms 544.5MB 497ms 87ms openjdk 23
java 1.java 399ms 2.7ms 679.6MB 473ms 90ms openjdk 21
java 1-m.java 404ms 8.2ms 633.5MB 610ms 97ms graal/jvm 17.0.8
typescript 1.ts 552ms 0.2ms 228.4MB 557ms 103ms deno 2.3.5
java 1.java 1023ms 11ms 974.0MB 463ms 707ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 151ms 1.5ms 98.5MB 147ms 37ms deno 2.3.5
java 1-m.java 166ms 3.4ms 158.5MB 247ms 40ms openjdk 23
java 1-m.java 170ms 12ms 206.5MB 243ms 43ms openjdk 21
java 1-m.java 213ms 7.0ms 253.5MB 357ms 53ms graal/jvm 17.0.8
java 1.java 412ms 7.1ms 341.9MB 213ms 277ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 441ms 1.8ms 45.4MB 480ms 13ms openjdk 21
java 1.java 444ms 1.2ms 48.2MB 480ms 20ms openjdk 23
java 1.java 447ms 3.2ms 81.7MB 483ms 23ms graal/jvm 17.0.8
typescript 6.ts 467ms 12ms 56.6MB 453ms 10ms deno 2.3.5
java 1.java 567ms 1.6ms 45.0MB 490ms 140ms openjdk/zgc 21
java 2.java 1230ms 1.5ms 567.4MB 1367ms 73ms openjdk 21
java 2.java 1245ms 7.7ms 792.1MB 1367ms 93ms openjdk 23
java 2.java 3242ms 30ms 2411.5MB 1663ms 1800ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 76ms 0.6ms 56.5MB 63ms 7ms deno 2.3.5
java 1.java 115ms 2.7ms 81.5MB 143ms 27ms graal/jvm 17.0.8
java 1-m.java 117ms 1.5ms 45.3MB 157ms 20ms openjdk 21
java 1.java 118ms 3.8ms 48.1MB 157ms 17ms openjdk 23
java 1.java 241ms 4.9ms 44.6MB 157ms 140ms openjdk/zgc 21
java 2-m.java 289ms 5.6ms 371.1MB 420ms 57ms openjdk 21
java 2-m.java 305ms 7.2ms 418.7MB 450ms 57ms openjdk 23
java 2.java 680ms 10ms 526.8MB 463ms 403ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 3185ms 10ms 444.0MB 3607ms 107ms graal/jvm 17.0.8
java 1.java 3705ms 65ms 448.5MB 4597ms 110ms openjdk 23
java 1.java 3709ms 72ms 366.5MB 4553ms 107ms openjdk 21
typescript 3.ts 4877ms 18ms 133.1MB 4760ms 160ms deno 2.3.5
java 1.java timeout 0.0ms 1957.4MB 4627ms 1233ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 880ms 4.2ms 369.9MB 1217ms 93ms graal/jvm 17.0.8
java 1-m.java 1000ms 42ms 386.8MB 1787ms 87ms openjdk 21
java 1-m.java 1014ms 24ms 412.8MB 1770ms 97ms openjdk 23
typescript 3.ts 1118ms 8.9ms 78.1MB 1063ms 73ms deno 2.3.5
java 1.java 1993ms 39ms 1355.3MB 1723ms 1037ms openjdk/zgc 21

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1938ms 6.9ms 59.6MB 1943ms 13ms deno 2.3.5

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 528ms 3.9ms 58.9MB 530ms 10ms deno 2.3.5

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1986ms 9.7ms 47.8MB 7600ms 27ms openjdk 21
java 2-m.java 1987ms 18ms 48.7MB 7617ms 30ms openjdk 23
java 2-m.java 2117ms 11ms 45.8MB 7620ms 153ms openjdk/zgc 21
java 2-m.java 2514ms 6.9ms 94.5MB 9423ms 43ms graal/jvm 17.0.8
typescript 7.ts 4058ms 21ms 56.3MB 4047ms 7ms deno 2.3.5

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 599ms 0.5ms 47.8MB 2133ms 23ms openjdk 21
java 2-m.java 614ms 4.8ms 49.0MB 2180ms 20ms openjdk 23
java 2-m.java 737ms 1.7ms 45.5MB 2183ms 140ms openjdk/zgc 21
java 2-m.java 761ms 25ms 95.2MB 2687ms 37ms graal/jvm 17.0.8
typescript 7.ts 1035ms 5.1ms 56.5MB 1023ms 10ms deno 2.3.5

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 249ms 6.5ms 47.4MB 737ms 17ms openjdk 21
java 2-m.java 257ms 2.4ms 48.6MB 783ms 20ms openjdk 23
typescript 7.ts 285ms 2.4ms 54.4MB 270ms 10ms deno 2.3.5
java 2-m.java 310ms 29ms 95.0MB 947ms 40ms graal/jvm 17.0.8
java 2-m.java 377ms 11ms 45.3MB 767ms 143ms openjdk/zgc 21