Typescript VS Java benchmarks

Current benchmark data was generated on Wed May 25 2022, 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 763ms 6.3ms 409.6MB 760ms 123ms openjdk 19
java 2.java 804ms 74ms 601.4MB 767ms 147ms openjdk 18.0.1
java 2.java 1100ms 12ms 681.2MB 903ms 160ms graal/jvm 17.0.3
java 2.java 1391ms 53ms 1047.4MB 987ms 620ms openjdk/zgc 18.0.1
typescript 1.ts 3471ms 34ms 169.4MB 3520ms 673ms deno 1.22.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 146ms 9.8ms 55.4MB 130ms 17ms deno 1.22.0
java 2.java 167ms 8.8ms 106.6MB 153ms 40ms openjdk 18.0.1
java 2.java 178ms 3.6ms 107.5MB 177ms 33ms openjdk 19
java 2.java 328ms 2.3ms 235.7MB 187ms 167ms openjdk/zgc 18.0.1
java 2.java 518ms 12ms 169.0MB 247ms 50ms graal/jvm 17.0.3

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 2061ms 138ms 68.2MB 2067ms 40ms deno 1.22.0
java 1.java timeout 0.0ms 0.0MB 0ms 0ms loom 19

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 166ms 9.6ms 45.0MB 153ms 10ms deno 1.22.0
java 1-m.java 772ms 131ms 108.2MB 1330ms 67ms loom 19

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 455ms 11ms 40.1MB 523ms 3ms openjdk 18.0.1
java 4.java 460ms 2.4ms 39.3MB 523ms 17ms openjdk 19
java 4.java 501ms 5.3ms 38.8MB 503ms 63ms openjdk/zgc 18.0.1
java 4.java 846ms 29ms 123.5MB 837ms 40ms graal/jvm 17.0.3
typescript 1.ts 4617ms 35ms 54.2MB 4440ms 173ms deno 1.22.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 138ms 1.8ms 39.9MB 160ms 17ms openjdk 18.0.1
java 4.java 146ms 4.7ms 38.7MB 177ms 7ms openjdk 19
java 4.java 192ms 4.3ms 38.5MB 163ms 60ms openjdk/zgc 18.0.1
typescript 1.ts 464ms 26ms 44.9MB 427ms 27ms deno 1.22.0
java 4.java 470ms 8.4ms 87.7MB 187ms 23ms graal/jvm 17.0.3

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 20ms 0.6ms 32.2MB 8ms 3ms deno 1.22.0
java 1.java 79ms 1.8ms 61.3MB 73ms 18ms graal/jvm 17.0.3
java 1.java 81ms 2.9ms 38.9MB 82ms 10ms openjdk 18.0.1
java 1.java 85ms 4.6ms 38.3MB 78ms 14ms openjdk 19
java 1.java 131ms 1.4ms 38.7MB 86ms 58ms openjdk/zgc 18.0.1

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 1155ms 13ms 133.5MB 1337ms 310ms deno 1.22.0
typescript 1.ts 1203ms 23ms 133.7MB 1400ms 317ms deno 1.22.0
typescript 2-tls.ts 1488ms 140ms 160.9MB 1613ms 390ms deno 1.22.0
typescript 1-http2.ts 1560ms 35ms 138.5MB 1663ms 377ms deno 1.22.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 266ms 16ms 69.6MB 203ms 63ms deno 1.22.0
typescript 2.ts 267ms 10ms 71.5MB 210ms 67ms deno 1.22.0
typescript 2-tls.ts 332ms 6.5ms 74.8MB 270ms 70ms deno 1.22.0
typescript 1-http2.ts 334ms 24ms 67.7MB 260ms 73ms deno 1.22.0

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1-m.ts 167ms 0.8ms 65.3MB 263ms 7ms deno 1.22.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1213ms 67ms 264.9MB 1400ms 127ms deno 1.22.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 758ms 0.5ms 44.4MB 747ms 7ms deno 1.22.0
typescript 1.ts 1088ms 0.2ms 43.7MB 1073ms 7ms deno 1.22.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 2140ms 101ms 51.9MB 2137ms 7ms deno 1.22.0
typescript 1.ts 2827ms 5.7ms 51.8MB 2803ms 17ms deno 1.22.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 361ms 21ms 38.0MB 343ms 7ms deno 1.22.0
typescript 1.ts 411ms 4.9ms 37.3MB 397ms 0ms deno 1.22.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 573ms 6.4ms 366.3MB 573ms 103ms openjdk 18.0.1
java 1.java 575ms 12ms 364.4MB 590ms 83ms openjdk 19
typescript 1.ts 758ms 42ms 91.1MB 757ms 40ms deno 1.22.0
java 1.java 972ms 22ms 447.4MB 777ms 140ms graal/jvm 17.0.3
java 1.java 1041ms 9.3ms 778.4MB 703ms 493ms openjdk/zgc 18.0.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 193ms 11ms 57.4MB 187ms 17ms deno 1.22.0
java 1.java 240ms 4.4ms 171.2MB 230ms 63ms openjdk 19
java 1.java 243ms 2.4ms 220.9MB 237ms 53ms openjdk 18.0.1
java 1.java 459ms 21ms 334.9MB 273ms 227ms openjdk/zgc 18.0.1
java 1.java 624ms 24ms 246.2MB 413ms 77ms graal/jvm 17.0.3

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 626ms 14ms 40.9MB 643ms 13ms openjdk 18.0.1
java 1.java 628ms 13ms 39.7MB 637ms 17ms openjdk 19
java 1.java 696ms 1.2ms 38.4MB 663ms 53ms openjdk/zgc 18.0.1
typescript 6.ts 738ms 49ms 39.4MB 720ms 3ms deno 1.22.0
java 1.java 891ms 1.3ms 88.1MB 610ms 33ms graal/jvm 17.0.3
java 2.java 2253ms 3.5ms 526.9MB 2250ms 147ms openjdk 18.0.1
java 2.java 2272ms 9.4ms 508.4MB 2277ms 157ms openjdk 19
java 2.java 3326ms 73ms 1646.8MB 2433ms 1097ms openjdk/zgc 18.0.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 99ms 2.7ms 37.4MB 83ms 3ms deno 1.22.0
java 1.java 147ms 1.2ms 39.8MB 163ms 13ms openjdk 19
java 1.java 152ms 7.3ms 40.4MB 157ms 23ms openjdk 18.0.1
java 1.java 205ms 6.2ms 39.8MB 160ms 70ms openjdk/zgc 18.0.1
java 2.java 459ms 12ms 314.1MB 487ms 110ms openjdk 18.0.1
java 1.java 468ms 0.9ms 82.5MB 180ms 30ms graal/jvm 17.0.3
java 2.java 481ms 1.1ms 345.4MB 523ms 103ms openjdk 19
java 2.java 788ms 8.8ms 521.2MB 570ms 370ms openjdk/zgc 18.0.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java timeout 0.0ms 0.0MB 0ms 0ms graal/jvm 17.0.3
java 1.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 18.0.1
java 1.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 19
java 1.java timeout 0.0ms 0.0MB 0ms 0ms openjdk/zgc 18.0.1
typescript 3.ts timeout 0.0ms 0.0MB 0ms 0ms deno 1.22.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 3.ts 1266ms 14ms 53.3MB 1253ms 47ms deno 1.22.0
java 1.java 1559ms 24ms 379.5MB 1990ms 140ms graal/jvm 17.0.3
java 1.java 1649ms 6.5ms 261.4MB 1943ms 73ms openjdk 18.0.1
java 1.java 1663ms 16ms 262.7MB 2003ms 97ms openjdk 19
java 1.java 2164ms 24ms 984.4MB 2187ms 707ms openjdk/zgc 18.0.1

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 3132ms 218ms 37.8MB 3167ms 20ms deno 1.22.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 852ms 56ms 37.7MB 863ms 13ms deno 1.22.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 4312ms 317ms 36.7MB 4290ms 3ms deno 1.22.0
java 2-m.java 4400ms 28ms 115.2MB 8420ms 57ms graal/jvm 17.0.3
java 2.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 18.0.1
java 2.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 19
java 2.java timeout 0.0ms 0.0MB 0ms 0ms openjdk/zgc 18.0.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 1152ms 59ms 34.9MB 1133ms 7ms deno 1.22.0
java 2-m.java 1262ms 17ms 114.8MB 2297ms 53ms graal/jvm 17.0.3
java 2-m.java 1651ms 80ms 42.6MB 3087ms 23ms openjdk 19
java 2-m.java 2110ms 38ms 40.7MB 3980ms 13ms openjdk 18.0.1
java 2-m.java 2212ms 31ms 40.7MB 4127ms 67ms openjdk/zgc 18.0.1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 309ms 21ms 32.8MB 297ms 0ms deno 1.22.0
java 2-m.java 522ms 28ms 40.2MB 907ms 13ms openjdk 19
java 2-m.java 634ms 6.8ms 39.1MB 1107ms 13ms openjdk 18.0.1
java 2-m.java 710ms 20ms 38.6MB 1183ms 53ms openjdk/zgc 18.0.1
java 2.java 755ms 14ms 104.2MB 733ms 37ms graal/jvm 17.0.3