Typescript VS Java benchmarks

Current benchmark data was generated on Mon Feb 06 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -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 741ms 67ms 604.5MB 693ms 140ms openjdk 20
java 2.java 785ms 70ms 601.6MB 723ms 153ms openjdk 19
java 2.java 929ms 77ms 665.9MB 940ms 233ms graal/jvm 17.0.6
java 2.java 1459ms 59ms 1085.7MB 960ms 723ms openjdk/zgc 19
typescript 1.ts 4002ms 113ms 127.2MB 4077ms 633ms deno 1.30.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 187ms 22ms 108.8MB 167ms 37ms openjdk 20
java 2.java 192ms 10ms 111.6MB 187ms 33ms openjdk 19
typescript 1.ts 196ms 4.2ms 56.7MB 223ms 13ms deno 1.30.2
java 2.java 204ms 15ms 162.8MB 223ms 60ms graal/jvm 17.0.6
java 2.java 346ms 6.2ms 239.6MB 207ms 167ms openjdk/zgc 19

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 2022ms 10ms 70.1MB 2033ms 33ms deno 1.30.2
java 1-m.java 3410ms 117ms 198.3MB 6373ms 130ms openjdk 19
java 1-m.java 4472ms 132ms 924.9MB 7827ms 667ms openjdk/zgc 19
java 1.java timeout 0.0ms 143.3MB 9577ms 97ms openjdk 20

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 168ms 1.0ms 45.3MB 157ms 3ms deno 1.30.2
java 1-m.java 854ms 61ms 112.8MB 1507ms 50ms openjdk 19
java 1-m.java 907ms 79ms 112.3MB 1597ms 60ms openjdk 20
java 1-m.java 1004ms 94ms 238.1MB 1497ms 207ms openjdk/zgc 19

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 472ms 15ms 40.5MB 540ms 20ms openjdk 20
java 4.java 477ms 7.5ms 43.4MB 550ms 10ms openjdk 19
java 4.java 536ms 5.5ms 41.8MB 547ms 73ms openjdk/zgc 19
java 4.java 555ms 7.5ms 97.9MB 757ms 33ms graal/jvm 17.0.6
typescript 1.ts 2140ms 80ms 38.4MB 2007ms 113ms deno 1.30.2

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 151ms 4.9ms 40.7MB 160ms 13ms openjdk 19
java 4.java 152ms 14ms 39.8MB 170ms 13ms openjdk 20
java 4.java 159ms 10ms 86.3MB 180ms 30ms graal/jvm 17.0.6
java 4.java 210ms 11ms 41.2MB 170ms 70ms openjdk/zgc 19
typescript 1.ts 272ms 14ms 38.7MB 220ms 17ms deno 1.30.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 25ms 0.6ms 32.7MB 10ms 0ms deno 1.30.2
java 1.java 80ms 2.1ms 48.1MB 72ms 14ms graal/jvm 17.0.6
java 1.java 87ms 9.2ms 39.3MB 78ms 16ms openjdk 20
java 1.java 93ms 4.7ms 42.4MB 76ms 24ms openjdk 19
java 1.java 150ms 9.1ms 41.0MB 86ms 64ms openjdk/zgc 19

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 1098ms 45ms 136.4MB 1177ms 377ms deno 1.30.2
typescript 1.ts 1129ms 7.6ms 135.3MB 1173ms 393ms deno 1.30.2
typescript 2-tls.ts 1318ms 16ms 147.1MB 1390ms 370ms deno 1.30.2
typescript 1-http2.ts 1446ms 35ms 138.2MB 1570ms 400ms deno 1.30.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 237ms 12ms 75.2MB 160ms 67ms deno 1.30.2
typescript 2.ts 240ms 3.3ms 71.9MB 167ms 53ms deno 1.30.2
typescript 1-http2.ts 283ms 8.0ms 63.8MB 210ms 60ms deno 1.30.2
typescript 2-tls.ts 394ms 10ms 77.0MB 297ms 80ms deno 1.30.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 391ms 5.6ms 89.7MB 380ms 40ms deno 1.30.2

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 3684ms 93ms 384.6MB 3757ms 173ms deno 1.30.2

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 380ms 1.8ms 43.6MB 377ms 3ms deno 1.30.2
typescript 1.ts 705ms 0.8ms 44.0MB 693ms 7ms deno 1.30.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 1057ms 4.3ms 45.6MB 1047ms 7ms deno 1.30.2
typescript 1.ts 2045ms 2.9ms 45.0MB 2033ms 3ms deno 1.30.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 198ms 5.8ms 40.5MB 180ms 10ms deno 1.30.2
typescript 1.ts 224ms 2.5ms 38.2MB 213ms 7ms deno 1.30.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 578ms 25ms 374.6MB 570ms 107ms openjdk 20
java 1.java 599ms 5.4ms 373.3MB 597ms 100ms openjdk 19
java 1.java 607ms 1.8ms 351.7MB 767ms 110ms graal/jvm 17.0.6
typescript 1.ts 728ms 1.1ms 89.4MB 737ms 30ms deno 1.30.2
java 1.java 1062ms 7.0ms 737.3MB 673ms 530ms openjdk/zgc 19

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 187ms 1.6ms 57.3MB 187ms 13ms deno 1.30.2
java 1.java 259ms 11ms 174.3MB 250ms 63ms openjdk 19
java 1.java 264ms 11ms 222.1MB 263ms 60ms openjdk 20
java 1-m.java 301ms 2.6ms 279.6MB 410ms 60ms graal/jvm 17.0.6
java 1.java 460ms 1.7ms 307.8MB 270ms 230ms openjdk/zgc 19

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 599ms 11ms 89.9MB 623ms 27ms graal/jvm 17.0.6
java 1.java 651ms 5.4ms 40.6MB 660ms 10ms openjdk 20
java 1.java 661ms 11ms 42.0MB 657ms 23ms openjdk 19
java 1.java 707ms 18ms 41.7MB 650ms 70ms openjdk/zgc 19
typescript 6.ts 751ms 8.4ms 37.1MB 737ms 0ms deno 1.30.2
java 2.java 2110ms 21ms 516.4MB 2083ms 167ms openjdk 20
java 2.java 2163ms 14ms 550.9MB 2123ms 173ms openjdk 19
java 2.java 2913ms 129ms 1417.8MB 2140ms 963ms openjdk/zgc 19

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 107ms 4.2ms 37.2MB 97ms 0ms deno 1.30.2
java 1.java 160ms 6.0ms 40.5MB 167ms 23ms openjdk 20
java 1.java 163ms 3.2ms 89.9MB 190ms 30ms graal/jvm 17.0.6
java 1.java 178ms 5.1ms 42.0MB 170ms 23ms openjdk 19
java 1.java 217ms 7.7ms 43.8MB 173ms 63ms openjdk/zgc 19
java 2.java 460ms 1.3ms 347.4MB 490ms 107ms openjdk 20
java 2.java 488ms 15ms 362.6MB 517ms 107ms openjdk 19
java 2.java 793ms 2.4ms 487.0MB 563ms 377ms openjdk/zgc 19

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java timeout 0.0ms 331.1MB 5447ms 97ms graal/jvm 17.0.6
java 1.java timeout 0.0ms 284.6MB 5387ms 110ms openjdk 19
java 1.java timeout 0.0ms 270.7MB 5410ms 100ms openjdk 20
java 1.java timeout 0.0ms 1375.1MB 4547ms 903ms openjdk/zgc 19
typescript 3.ts timeout 0.0ms 79.1MB 4950ms 37ms deno 1.30.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 1451ms 18ms 261.6MB 1790ms 90ms openjdk 19
java 1.java 1458ms 14ms 295.9MB 1767ms 100ms openjdk 20
typescript 3.ts 1466ms 19ms 57.6MB 1403ms 73ms deno 1.30.2
java 1.java 1543ms 16ms 342.7MB 1893ms 113ms graal/jvm 17.0.6
java 1.java 2059ms 27ms 987.0MB 1660ms 750ms openjdk/zgc 19

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 3043ms 18ms 37.7MB 3040ms 7ms deno 1.30.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 791ms 9.2ms 38.0MB 797ms 7ms deno 1.30.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 4353ms 35ms 91.0MB 8370ms 40ms graal/jvm 17.0.6
java 2.java timeout 0.0ms 44.0MB 9700ms 27ms openjdk 19
java 2.java timeout 0.0ms 40.6MB 9707ms 23ms openjdk 20
java 2.java timeout 0.0ms 43.9MB 9613ms 57ms openjdk/zgc 19
typescript 7.ts timeout 0.0ms 39.1MB 4987ms 3ms deno 1.30.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1256ms 17ms 93.9MB 2293ms 27ms graal/jvm 17.0.6
typescript 7.ts 1361ms 17ms 37.9MB 1340ms 7ms deno 1.30.2
java 2-m.java 1690ms 21ms 44.1MB 3167ms 20ms openjdk 19
java 2-m.java 1719ms 55ms 42.2MB 3123ms 70ms openjdk/zgc 19
java 2-m.java 1964ms 48ms 40.9MB 3727ms 17ms openjdk 20

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 423ms 66ms 38.3MB 353ms 13ms deno 1.30.2
java 2-m.java 443ms 28ms 90.8MB 740ms 30ms graal/jvm 17.0.6
java 2-m.java 583ms 44ms 42.6MB 1013ms 17ms openjdk 19
java 2-m.java 603ms 35ms 40.7MB 1057ms 17ms openjdk 20
java 2-m.java 636ms 27ms 42.1MB 1000ms 70ms openjdk/zgc 19