Typescript VS Java benchmarks

Current benchmark data was generated on Thu Feb 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 450ms 3.2ms 574.3MB 543ms 87ms openjdk 21
java 2-m.java 462ms 4.6ms 646.8MB 650ms 110ms graal/jvm 17.0.8
java 2.java 462ms 4.8ms 588.2MB 563ms 97ms openjdk 23
java 2.java 1178ms 0.9ms 1055.6MB 607ms 733ms openjdk/zgc 21
typescript 1-m.ts 1432ms 22ms 190.5MB 2300ms 300ms deno 1.40.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 123ms 1.1ms 166.9MB 147ms 37ms openjdk 21
java 2-m.java 125ms 1.5ms 163.2MB 157ms 33ms openjdk 23
typescript 1.ts 138ms 0.4ms 95.4MB 133ms 37ms deno 1.40.2
java 2-m.java 168ms 15ms 230.2MB 220ms 70ms graal/jvm 17.0.8
java 2.java 314ms 1.3ms 241.4MB 153ms 213ms 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 1435ms 3.7ms 90.9MB 1497ms 53ms deno 1.40.2
java 1-m.java 1479ms 121ms 258.9MB 5493ms 127ms openjdk 23
java 1-m.java 1911ms 174ms 261.1MB 7210ms 130ms openjdk 21
java 1-m.java 2816ms 55ms 1230.1MB 8900ms 1077ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 155ms 2.8ms 71.7MB 133ms 27ms deno 1.40.2
java 1-m.java 370ms 49ms 84.9MB 1203ms 50ms openjdk 23
java 1-m.java 436ms 31ms 123.1MB 1460ms 57ms openjdk 21
java 1-m.java 668ms 28ms 216.5MB 1783ms 257ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 440ms 1.7ms 107.1MB 620ms 27ms graal/jvm 17.0.8
java 4.java 450ms 5.5ms 47.4MB 530ms 17ms openjdk 21
java 4.java 455ms 1.9ms 47.5MB 543ms 17ms openjdk 23
java 4.java 565ms 1.6ms 45.1MB 533ms 133ms openjdk/zgc 21
typescript 1.ts 2930ms 24ms 60.1MB 2793ms 147ms deno 1.40.2

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 119ms 4.0ms 46.5MB 167ms 7ms openjdk 23
java 4.java 124ms 1.1ms 46.2MB 157ms 23ms openjdk 21
java 4-m.java 144ms 8.0ms 99.7MB 213ms 30ms graal/jvm 17.0.8
java 4.java 242ms 5.6ms 43.9MB 167ms 133ms openjdk/zgc 21
typescript 1.ts 328ms 1.0ms 59.5MB 313ms 27ms deno 1.40.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 27ms 0.7ms 51.1MB 8ms 4ms deno 1.40.2
java 1.java 66ms 3.1ms 54.7MB 64ms 24ms graal/jvm 17.0.8
java 1.java 73ms 1.9ms 43.8MB 74ms 14ms openjdk 21
java 1.java 73ms 2.7ms 43.9MB 80ms 14ms openjdk 23
java 1.java 189ms 6.4ms 42.6MB 84ms 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 950ms 13ms 168.7MB 1003ms 447ms deno 1.40.2
typescript 1-m.ts 982ms 39ms 167.3MB 1020ms 480ms deno 1.40.2
typescript 2-tls.ts 1138ms 20ms 170.2MB 1173ms 490ms deno 1.40.2
typescript 1-http2.ts 1144ms 47ms 167.1MB 1200ms 470ms deno 1.40.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 223ms 8.6ms 91.5MB 120ms 100ms deno 1.40.2
typescript 1.ts 231ms 16ms 95.2MB 143ms 77ms deno 1.40.2
typescript 1-http2.ts 271ms 15ms 90.4MB 173ms 87ms deno 1.40.2
typescript 2-tls.ts 385ms 15ms 96.0MB 270ms 103ms deno 1.40.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 186ms 4.1ms 93.9MB 173ms 37ms deno 1.40.2

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1301ms 3.0ms 435.2MB 1487ms 120ms deno 1.40.2

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 267ms 4.6ms 63.9MB 250ms 17ms deno 1.40.2
typescript 1.ts 528ms 2.2ms 64.6MB 513ms 13ms deno 1.40.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 719ms 8.2ms 72.2MB 720ms 13ms deno 1.40.2
typescript 1.ts 1515ms 8.0ms 69.7MB 1503ms 13ms deno 1.40.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 142ms 0.4ms 61.9MB 133ms 10ms deno 1.40.2
typescript 1.ts 163ms 0.4ms 60.1MB 150ms 10ms deno 1.40.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 399ms 1.6ms 680.1MB 480ms 80ms openjdk 21
java 1.java 400ms 2.6ms 658.4MB 477ms 80ms openjdk 23
java 1-m.java 411ms 5.6ms 638.2MB 593ms 120ms graal/jvm 17.0.8
typescript 1.ts 554ms 0.7ms 130.9MB 633ms 73ms deno 1.40.2
java 1.java 1027ms 7.4ms 941.0MB 473ms 707ms openjdk/zgc 21

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 160ms 2.0ms 198.3MB 237ms 33ms openjdk 23
java 1-m.java 164ms 2.2ms 206.7MB 243ms 37ms openjdk 21
typescript 1.ts 166ms 3.3ms 99.0MB 160ms 47ms deno 1.40.2
java 1-m.java 251ms 4.7ms 257.4MB 403ms 73ms graal/jvm 17.0.8
java 1.java 430ms 21ms 343.8MB 227ms 277ms openjdk/zgc 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 443ms 1.2ms 47.6MB 487ms 13ms openjdk 23
java 1.java 444ms 1.9ms 45.4MB 477ms 20ms openjdk 21
java 1.java 455ms 6.6ms 86.8MB 483ms 30ms graal/jvm 17.0.8
typescript 6.ts 456ms 4.6ms 57.6MB 440ms 7ms deno 1.40.2
java 1.java 559ms 4.6ms 46.7MB 480ms 133ms openjdk/zgc 21
java 2.java 1234ms 5.9ms 597.7MB 1363ms 77ms openjdk 23
java 2.java 1238ms 9.8ms 647.8MB 1373ms 80ms openjdk 21
java 2.java 3177ms 56ms 2367.4MB 1670ms 1723ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 78ms 1.2ms 57.7MB 57ms 13ms deno 1.40.2
java 1.java 119ms 1.1ms 45.5MB 147ms 23ms openjdk 21
java 1.java 120ms 0.2ms 47.8MB 153ms 20ms openjdk 23
java 1.java 126ms 5.3ms 87.5MB 157ms 27ms graal/jvm 17.0.8
java 1.java 243ms 2.9ms 46.7MB 163ms 140ms openjdk/zgc 21
java 2-m.java 295ms 2.6ms 352.8MB 433ms 50ms openjdk 23
java 2-m.java 298ms 4.2ms 362.9MB 443ms 50ms openjdk 21
java 2.java 681ms 8.7ms 528.1MB 440ms 427ms openjdk/zgc 21

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 3191ms 33ms 448.1MB 3637ms 107ms graal/jvm 17.0.8
java 1.java 3685ms 53ms 351.8MB 4547ms 103ms openjdk 21
java 1.java 3771ms 108ms 349.5MB 4527ms 107ms openjdk 23
java 1.java timeout 0.0ms 1824.0MB 4710ms 1153ms openjdk/zgc 21
typescript 3.ts timeout 0.0ms 100.6MB 4977ms 53ms deno 1.40.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 886ms 25ms 443.5MB 1233ms 90ms graal/jvm 17.0.8
java 1-m.java 985ms 30ms 350.6MB 1777ms 103ms openjdk 21
java 1-m.java 1029ms 9.0ms 353.0MB 1767ms 87ms openjdk 23
typescript 3.ts 1268ms 11ms 86.3MB 1210ms 73ms deno 1.40.2
java 1.java 1995ms 36ms 1348.5MB 1753ms 1007ms openjdk/zgc 21

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1958ms 9.9ms 60.2MB 1957ms 13ms deno 1.40.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 532ms 1.9ms 59.6MB 527ms 13ms deno 1.40.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1956ms 9.0ms 48.0MB 7453ms 37ms openjdk 23
java 2-m.java 1957ms 12ms 47.8MB 7463ms 27ms openjdk 21
java 2-m.java 2081ms 13ms 45.6MB 7440ms 140ms openjdk/zgc 21
java 2-m.java 2462ms 20ms 94.8MB 8777ms 47ms graal/jvm 17.0.8
typescript 7.ts 4066ms 156ms 59.5MB 4050ms 13ms deno 1.40.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 583ms 3.4ms 47.7MB 2050ms 20ms openjdk 21
java 2-m.java 586ms 3.4ms 47.9MB 2070ms 20ms openjdk 23
java 2-m.java 713ms 3.2ms 45.6MB 2100ms 133ms openjdk/zgc 21
java 2-m.java 744ms 11ms 100.2MB 2513ms 37ms graal/jvm 17.0.8
typescript 7.ts 1002ms 27ms 57.1MB 993ms 7ms deno 1.40.2

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 233ms 0.9ms 47.6MB 667ms 20ms openjdk 21
java 2-m.java 243ms 5.5ms 47.9MB 727ms 23ms openjdk 23
typescript 7.ts 263ms 2.7ms 57.1MB 243ms 10ms deno 1.40.2
java 2-m.java 277ms 8.5ms 98.5MB 783ms 43ms graal/jvm 17.0.8
java 2-m.java 372ms 13ms 45.5MB 740ms 133ms openjdk/zgc 21