Typescript VS Java benchmarks

Current benchmark data was generated on Thu Jul 13 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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 672ms 7.4ms 412.4MB 670ms 97ms openjdk 20
java 2.java 673ms 14ms 413.9MB 690ms 80ms openjdk 22
java 2.java 799ms 50ms 666.8MB 807ms 187ms graal/jvm 17.0.7
java 2.java 1336ms 56ms 1147.9MB 903ms 630ms openjdk/zgc 20
typescript 1.ts 1826ms 4.2ms 180.2MB 2223ms 163ms deno 1.35.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 165ms 6.2ms 108.9MB 160ms 27ms openjdk 22
java 2.java 165ms 3.9ms 108.4MB 157ms 33ms openjdk 20
typescript 1.ts 169ms 6.2ms 84.1MB 153ms 20ms deno 1.35.1
java 2.java 187ms 9.1ms 164.5MB 217ms 40ms graal/jvm 17.0.7
java 2.java 298ms 0.3ms 235.9MB 193ms 137ms openjdk/zgc 20

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 2091ms 66ms 78.7MB 2083ms 30ms deno 1.35.1
java 1.java timeout 0.0ms 142.9MB 9613ms 87ms openjdk 20
java 1.java timeout 0.0ms 146.5MB 9657ms 77ms openjdk 22
java 1.java timeout 0.0ms 931.7MB 9253ms 423ms openjdk/zgc 20

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 189ms 2.7ms 60.7MB 173ms 17ms deno 1.35.1
java 1-m.java 796ms 16ms 113.4MB 1413ms 57ms openjdk 20
java 1-m.java 887ms 100ms 102.5MB 1617ms 37ms openjdk 22
java 1-m.java 899ms 17ms 206.7MB 1447ms 160ms openjdk/zgc 20

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 512ms 6.3ms 41.0MB 587ms 13ms openjdk 22
java 4.java 521ms 11ms 40.5MB 583ms 17ms openjdk 20
java 4.java 558ms 4.2ms 40.2MB 583ms 57ms openjdk/zgc 20
java 4.java 612ms 3.2ms 97.1MB 797ms 27ms graal/jvm 17.0.7
typescript 1.ts 2869ms 35ms 46.1MB 2760ms 107ms deno 1.35.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 147ms 14ms 39.8MB 167ms 7ms openjdk 20
java 4.java 149ms 10ms 40.2MB 170ms 7ms openjdk 22
java 4.java 158ms 3.6ms 86.0MB 183ms 17ms graal/jvm 17.0.7
java 4.java 189ms 7.0ms 39.3MB 170ms 50ms openjdk/zgc 20
typescript 1.ts 323ms 0.6ms 45.9MB 310ms 13ms deno 1.35.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 33ms 0.9ms 40.0MB 20ms 0ms deno 1.35.1
java 1.java 72ms 3.2ms 61.2MB 70ms 8ms graal/jvm 17.0.7
java 1.java 76ms 1.1ms 41.5MB 76ms 8ms openjdk 22
java 1.java 81ms 4.5ms 39.3MB 78ms 10ms openjdk 20
java 1.java 118ms 5.5ms 38.2MB 74ms 52ms openjdk/zgc 20

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 985ms 36ms 147.2MB 957ms 303ms deno 1.35.1
typescript 1.ts 1125ms 205ms 154.1MB 977ms 283ms deno 1.35.1
typescript 2-tls.ts 1177ms 11ms 153.6MB 1137ms 283ms deno 1.35.1
typescript 1-http2.ts 1185ms 36ms 148.2MB 1143ms 317ms deno 1.35.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 216ms 4.3ms 80.5MB 147ms 53ms deno 1.35.1
typescript 1.ts 249ms 8.5ms 82.3MB 167ms 40ms deno 1.35.1
typescript 1-http2.ts 275ms 8.4ms 80.3MB 183ms 53ms deno 1.35.1
typescript 2-tls.ts 405ms 5.6ms 83.5MB 323ms 60ms deno 1.35.1

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 214ms 4.6ms 85.0MB 203ms 27ms deno 1.35.1

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1718ms 3.6ms 414.3MB 1740ms 130ms deno 1.35.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 365ms 3.7ms 52.8MB 353ms 7ms deno 1.35.1
typescript 1.ts 726ms 9.1ms 50.6MB 693ms 7ms deno 1.35.1

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 998ms 9.7ms 59.8MB 987ms 17ms deno 1.35.1
typescript 1.ts 2042ms 12ms 57.5MB 2030ms 3ms deno 1.35.1

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 187ms 3.4ms 47.4MB 180ms 7ms deno 1.35.1
typescript 1.ts 237ms 12ms 48.1MB 200ms 7ms deno 1.35.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 512ms 13ms 287.9MB 523ms 67ms openjdk 22
java 1.java 521ms 6.6ms 286.6MB 533ms 67ms openjdk 20
java 1.java 573ms 65ms 370.7MB 733ms 83ms graal/jvm 17.0.7
typescript 1.ts 710ms 9.5ms 118.2MB 740ms 40ms deno 1.35.1
java 1.java 957ms 46ms 764.8MB 643ms 447ms openjdk/zgc 20

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 208ms 1.9ms 85.2MB 200ms 20ms deno 1.35.1
java 1.java 230ms 13ms 223.6MB 233ms 47ms openjdk 22
java 1.java 233ms 11ms 222.5MB 247ms 43ms openjdk 20
java 1-m.java 269ms 18ms 279.1MB 370ms 57ms graal/jvm 17.0.7
java 1.java 433ms 5.6ms 346.0MB 257ms 217ms openjdk/zgc 20

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 546ms 4.8ms 87.4MB 567ms 27ms graal/jvm 17.0.7
java 1.java 568ms 7.8ms 40.5MB 577ms 13ms openjdk 20
java 1.java 569ms 5.5ms 43.6MB 580ms 10ms openjdk 22
typescript 6.ts 595ms 1.1ms 45.0MB 580ms 0ms deno 1.35.1
java 1.java 608ms 2.8ms 41.6MB 577ms 60ms openjdk/zgc 20
java 2.java 1893ms 12ms 514.6MB 1927ms 103ms openjdk 20
java 2.java 1933ms 5.9ms 506.0MB 1947ms 120ms openjdk 22
java 2.java 2609ms 2.3ms 1195.5MB 2063ms 730ms openjdk/zgc 20

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 97ms 5.4ms 45.7MB 83ms 10ms deno 1.35.1
java 1.java 141ms 3.4ms 84.6MB 173ms 13ms graal/jvm 17.0.7
java 1.java 148ms 3.9ms 40.8MB 160ms 17ms openjdk 20
java 1.java 149ms 5.8ms 41.7MB 163ms 10ms openjdk 22
java 1.java 197ms 7.3ms 41.7MB 167ms 57ms openjdk/zgc 20
java 2.java 424ms 2.6ms 338.1MB 493ms 60ms openjdk 20
java 2.java 425ms 2.7ms 330.8MB 493ms 67ms openjdk 22
java 2.java 762ms 1.2ms 522.5MB 547ms 360ms openjdk/zgc 20

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 4975ms 15ms 338.9MB 5350ms 67ms graal/jvm 17.0.7
java 1.java timeout 0.0ms 299.0MB 5433ms 90ms openjdk 20
java 1.java timeout 0.0ms 285.3MB 5593ms 80ms openjdk 22
java 1.java timeout 0.0ms 1177.0MB 5083ms 597ms openjdk/zgc 20
typescript 3.ts timeout 0.0ms 87.8MB 4970ms 27ms deno 1.35.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 1328ms 19ms 352.8MB 1673ms 63ms graal/jvm 17.0.7
java 1.java 1448ms 18ms 250.9MB 1840ms 73ms openjdk 20
java 1.java 1460ms 5.9ms 305.3MB 1907ms 63ms openjdk 22
typescript 3.ts 1520ms 21ms 64.7MB 1457ms 57ms deno 1.35.1
java 1.java 1985ms 21ms 968.9MB 1903ms 623ms openjdk/zgc 20

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 2497ms 11ms 46.1MB 2493ms 7ms deno 1.35.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 663ms 2.3ms 44.7MB 670ms 3ms deno 1.35.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 4198ms 143ms 90.9MB 8130ms 17ms graal/jvm 17.0.7
java 2-m.java 4416ms 29ms 45.5MB 8555ms 15ms openjdk 22
java 2.java timeout 0.0ms 40.2MB 9730ms 13ms openjdk 20
java 2.java timeout 0.0ms 42.4MB 9590ms 40ms openjdk/zgc 20
typescript 7.ts timeout 0.0ms 46.8MB 4957ms 10ms deno 1.35.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1192ms 17ms 43.5MB 2213ms 13ms openjdk 22
java 2-m.java 1208ms 38ms 91.5MB 2243ms 20ms graal/jvm 17.0.7
typescript 7.ts 1682ms 42ms 46.2MB 1667ms 3ms deno 1.35.1
java 2-m.java 1701ms 17ms 40.6MB 3223ms 3ms openjdk 20
java 2-m.java 1845ms 184ms 40.3MB 3417ms 60ms openjdk/zgc 20

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 418ms 13ms 43.6MB 710ms 7ms openjdk 22
java 2-m.java 435ms 10ms 93.6MB 717ms 33ms graal/jvm 17.0.7
typescript 7.ts 504ms 42ms 46.6MB 440ms 13ms deno 1.35.1
java 2-m.java 595ms 5.3ms 40.9MB 1060ms 10ms openjdk 20
java 2-m.java 638ms 37ms 42.3MB 1057ms 57ms openjdk/zgc 20