Typescript VS Nim benchmarks

Current benchmark data was generated on Fri May 20 2022, 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
typescript 1.ts 3160ms 31ms 171.7MB 3337ms 503ms deno 1.22.0
nim 2.nim 3400ms 65ms 34.4MB 3377ms 7ms nim/clang 1.6.6
nim 2.nim 3513ms 2.5ms 34.5MB 3490ms 7ms nim 1.6.6

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 197ms 59ms 55.7MB 150ms 20ms deno 1.22.0
nim 2.nim 320ms 4.9ms 5.7MB 310ms 0ms nim/clang 1.6.6
nim 2.nim 332ms 2.4ms 5.4MB 320ms 0ms nim 1.6.6

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 2039ms 9.8ms 68.3MB 2040ms 37ms deno 1.22.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 174ms 2.9ms 44.8MB 157ms 13ms deno 1.22.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 261ms 0.9ms 0.7MB 247ms 0ms nim 1.6.6
nim 2.nim 337ms 0.7ms 0.9MB 320ms 0ms nim/clang 1.6.6
nim 1.nim 771ms 2.8ms 0.7MB 650ms 103ms nim 1.6.6
nim 1.nim 787ms 2.3ms 0.9MB 657ms 110ms nim/clang 1.6.6
typescript 1.ts 4393ms 38ms 54.1MB 4227ms 153ms deno 1.22.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 28ms 0.1ms 0.7MB 20ms 0ms nim 1.6.6
nim 2.nim 36ms 0.1ms 1.0MB 30ms 0ms nim/clang 1.6.6
nim 1.nim 81ms 0.5ms 0.7MB 57ms 7ms nim 1.6.6
nim 1.nim 82ms 0.9ms 1.0MB 63ms 3ms nim/clang 1.6.6
typescript 1.ts 506ms 61ms 45.4MB 433ms 33ms deno 1.22.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1.7ms 0.5ms 0.7MB 0ms 0ms nim 1.6.6
nim 1.nim 1.8ms 0.5ms 1.0MB 0ms 0ms nim/clang 1.6.6
typescript 1.ts 20ms 0.8ms 31.7MB 10ms 0ms deno 1.22.0

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 760ms 4.4ms 94.5MB 327ms 393ms nim 1.6.6
nim 1.nim 767ms 2.5ms 94.7MB 320ms 413ms nim/clang 1.6.6
typescript 2.ts 1059ms 22ms 136.5MB 1183ms 320ms deno 1.22.0
typescript 1.ts 1071ms 28ms 133.2MB 1167ms 330ms deno 1.22.0
typescript 1-http2.ts 1370ms 16ms 139.4MB 1467ms 357ms deno 1.22.0
typescript 2-tls.ts 1521ms 336ms 164.7MB 1483ms 363ms deno 1.22.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 126ms 0.5ms 18.1MB 47ms 63ms nim 1.6.6
nim 1.nim 131ms 0.9ms 18.0MB 50ms 63ms nim/clang 1.6.6
typescript 2.ts 279ms 64ms 70.9MB 190ms 57ms deno 1.22.0
typescript 1.ts 291ms 70ms 68.8MB 183ms 67ms deno 1.22.0
typescript 1-http2.ts 345ms 61ms 68.3MB 253ms 60ms deno 1.22.0
typescript 2-tls.ts 380ms 50ms 76.6MB 273ms 80ms 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 164ms 4.8ms 65.2MB 260ms 10ms deno 1.22.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1129ms 20ms 264.6MB 1320ms 80ms deno 1.22.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 147ms 0.8ms 1.0MB 140ms 0ms nim/clang 1.6.6
nim 2.nim 154ms 0.4ms 0.7MB 143ms 0ms nim 1.6.6
typescript 2.ts 732ms 1.6ms 43.4MB 717ms 10ms deno 1.22.0
typescript 1.ts 1158ms 2.2ms 44.0MB 1143ms 3ms deno 1.22.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 436ms 4.3ms 1.0MB 427ms 0ms nim/clang 1.6.6
nim 2.nim 458ms 2.1ms 0.7MB 447ms 0ms nim 1.6.6
typescript 2.ts 2121ms 7.1ms 49.7MB 2110ms 10ms deno 1.22.0
typescript 1.ts 3401ms 1.9ms 51.5MB 3383ms 7ms deno 1.22.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 64ms 1.0ms 1.0MB 53ms 0ms nim/clang 1.6.6
nim 2.nim 67ms 0.4ms 0.7MB 60ms 0ms nim 1.6.6
typescript 2.ts 369ms 1.4ms 37.9MB 353ms 7ms deno 1.22.0
nim 1.nim 421ms 0.9ms 1.0MB 410ms 0ms nim/clang 1.6.6
typescript 1.ts 436ms 50ms 37.6MB 387ms 10ms deno 1.22.0
nim 1.nim 466ms 4.2ms 0.7MB 457ms 0ms nim 1.6.6

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 671ms 2.2ms 91.2MB 677ms 33ms deno 1.22.0
nim 1.nim 1581ms 0.4ms 35.1MB 1560ms 10ms nim/clang 1.6.6
nim 1.nim 1664ms 0.7ms 35.1MB 1643ms 7ms nim 1.6.6

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 177ms 1.2ms 57.2MB 173ms 10ms deno 1.22.0
nim 1.nim 340ms 2.8ms 9.9MB 330ms 0ms nim/clang 1.6.6
nim 1.nim 361ms 4.6ms 9.3MB 347ms 0ms nim 1.6.6

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 405ms 0.5ms 1.0MB 390ms 0ms nim/clang 1.6.6
nim 2.nim 429ms 1.0ms 1.0MB 420ms 0ms nim 1.6.6
typescript 6.ts 683ms 1.3ms 37.7MB 663ms 3ms deno 1.22.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 43ms 0.1ms 1.0MB 33ms 0ms nim/clang 1.6.6
nim 2.nim 45ms 0.9ms 1.0MB 40ms 0ms nim 1.6.6
typescript 6.ts 99ms 3.3ms 37.6MB 93ms 0ms deno 1.22.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6
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 1365ms 10ms 55.2MB 1360ms 40ms deno 1.22.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 2817ms 8.0ms 37.5MB 2833ms 10ms deno 1.22.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 739ms 2.6ms 37.7MB 747ms 3ms deno 1.22.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 4121ms 0.3ms 1.8MB 4110ms 0ms nim/clang 1.6.6
nim 1.nim 4122ms 1.3ms 1.8MB 4110ms 0ms nim 1.6.6
typescript 7.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
nim 1.nim 1032ms 0.3ms 1.0MB 1020ms 0ms nim 1.6.6
nim 1.nim 1033ms 1.6ms 1.0MB 1020ms 0ms nim/clang 1.6.6
typescript 7.ts 1280ms 1.3ms 34.8MB 1263ms 3ms deno 1.22.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 260ms 0.3ms 1.0MB 250ms 0ms nim 1.6.6
nim 1.nim 260ms 0.3ms 1.0MB 250ms 0ms nim/clang 1.6.6
typescript 7.ts 345ms 0.8ms 34.9MB 327ms 7ms deno 1.22.0