Typescript VS Nim benchmarks

Current benchmark data was generated on Thu Sep 22 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 3386ms 187ms 200.3MB 3387ms 530ms deno 1.25.3
nim 2.nim 3403ms 74ms 34.2MB 3380ms 3ms nim/clang 1.6.6
nim 2.nim 3563ms 91ms 34.8MB 3533ms 10ms nim 1.6.6

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 130ms 1.1ms 51.3MB 123ms 7ms deno 1.25.3
nim 2.nim 320ms 2.8ms 5.7MB 307ms 0ms nim/clang 1.6.6
nim 2.nim 331ms 1.2ms 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 2091ms 27ms 71.6MB 2090ms 27ms deno 1.25.3
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 202ms 11ms 46.0MB 163ms 7ms deno 1.25.3
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.2ms 0.7MB 250ms 0ms nim 1.6.6
nim 2.nim 338ms 1.1ms 0.9MB 327ms 0ms nim/clang 1.6.6
nim 1.nim 789ms 1.3ms 0.7MB 683ms 93ms nim 1.6.6
nim 1.nim 808ms 1.1ms 0.9MB 697ms 93ms nim/clang 1.6.6
typescript 1.ts 4338ms 41ms 55.4MB 4160ms 157ms deno 1.25.3

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 31ms 2.5ms 0.7MB 20ms 0ms nim 1.6.6
nim 2.nim 37ms 0.2ms 1.0MB 30ms 0ms nim/clang 1.6.6
nim 1.nim 84ms 0.3ms 1.0MB 67ms 3ms nim/clang 1.6.6
nim 1.nim 84ms 3.1ms 0.7MB 60ms 7ms nim 1.6.6
typescript 1.ts 462ms 5.7ms 47.6MB 443ms 20ms deno 1.25.3

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1.3ms 0.1ms 0.9MB 0ms 0ms nim/clang 1.6.6
nim 1.nim 2.2ms 0.8ms 0.7MB 0ms 0ms nim 1.6.6
typescript 1.ts 22ms 0.5ms 32.8MB 10ms 0ms deno 1.25.3

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 740ms 4.9ms 94.6MB 317ms 387ms nim/clang 1.6.6
nim 1.nim 752ms 2.9ms 94.3MB 340ms 377ms nim 1.6.6
typescript 2.ts 1082ms 28ms 138.2MB 1277ms 330ms deno 1.25.3
typescript 1.ts 1265ms 234ms 142.6MB 1260ms 327ms deno 1.25.3
typescript 1-http2.ts 1358ms 56ms 143.7MB 1540ms 367ms deno 1.25.3
typescript 2-tls.ts timeout 0.0ms 0.0MB 0ms 0ms deno 1.25.3

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 124ms 1.3ms 18.2MB 50ms 60ms nim/clang 1.6.6
nim 1.nim 129ms 1.5ms 17.7MB 60ms 53ms nim 1.6.6
typescript 2.ts 226ms 9.5ms 76.1MB 183ms 50ms deno 1.25.3
typescript 1.ts 234ms 2.2ms 78.2MB 157ms 80ms deno 1.25.3
typescript 1-http2.ts 372ms 8.2ms 77.9MB 250ms 70ms deno 1.25.3
typescript 2-tls.ts 407ms 1.2ms 84.4MB 353ms 63ms deno 1.25.3

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 146ms 4.7ms 65.8MB 133ms 13ms deno 1.25.3

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1142ms 5.7ms 265.5MB 1240ms 80ms deno 1.25.3

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 149ms 4.5ms 1.0MB 140ms 0ms nim/clang 1.6.6
nim 2.nim 154ms 0.7ms 0.7MB 140ms 0ms nim 1.6.6
typescript 2.ts 693ms 34ms 45.5MB 687ms 3ms deno 1.25.3
typescript 1.ts 1091ms 2.3ms 45.4MB 1080ms 7ms deno 1.25.3
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 5.6ms 0.9MB 423ms 0ms nim/clang 1.6.6
nim 2.nim 455ms 0.8ms 0.7MB 443ms 0ms nim 1.6.6
typescript 2.ts 1943ms 11ms 53.2MB 1927ms 13ms deno 1.25.3
typescript 1.ts 3202ms 2.6ms 51.7MB 3183ms 7ms deno 1.25.3
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.4ms 1.0MB 50ms 0ms nim/clang 1.6.6
nim 2.nim 67ms 1.0ms 0.7MB 60ms 0ms nim 1.6.6
typescript 2.ts 339ms 2.5ms 40.5MB 333ms 0ms deno 1.25.3
typescript 1.ts 370ms 0.3ms 37.7MB 357ms 3ms deno 1.25.3
nim 1.nim 416ms 6.8ms 1.0MB 403ms 0ms nim/clang 1.6.6
nim 1.nim 465ms 5.6ms 0.7MB 453ms 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 649ms 3.4ms 90.5MB 667ms 30ms deno 1.25.3
nim 1.nim 1578ms 1.6ms 34.9MB 1560ms 3ms nim/clang 1.6.6
nim 1.nim 1661ms 1.3ms 34.8MB 1640ms 7ms nim 1.6.6

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 166ms 1.1ms 59.8MB 170ms 17ms deno 1.25.3
nim 1.nim 340ms 1.4ms 10.0MB 327ms 0ms nim/clang 1.6.6
nim 1.nim 357ms 0.5ms 9.2MB 343ms 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.6ms 0.9MB 390ms 0ms nim/clang 1.6.6
nim 2.nim 428ms 0.4ms 1.0MB 420ms 0ms nim 1.6.6
typescript 6.ts 630ms 0.8ms 38.6MB 617ms 7ms deno 1.25.3

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 44ms 0.7ms 1.0MB 30ms 0ms nim/clang 1.6.6
nim 2.nim 46ms 0.3ms 1.0MB 37ms 0ms nim 1.6.6
typescript 6.ts 91ms 1.3ms 36.2MB 77ms 7ms deno 1.25.3

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.25.3

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 3.ts 1526ms 2.8ms 57.7MB 1503ms 90ms deno 1.25.3
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 2614ms 5.5ms 39.7MB 2623ms 3ms deno 1.25.3

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 697ms 16ms 39.4MB 690ms 10ms deno 1.25.3

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 4122ms 1.4ms 1.9MB 4110ms 0ms nim 1.6.6
nim 1.nim 4122ms 4.1ms 1.8MB 4110ms 0ms nim/clang 1.6.6
typescript 7.ts timeout 0.0ms 0.0MB 0ms 0ms deno 1.25.3

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1033ms 1.0ms 1.0MB 1020ms 0ms nim/clang 1.6.6
nim 1.nim 1033ms 0.4ms 1.0MB 1020ms 0ms nim 1.6.6
typescript 7.ts 1279ms 2.0ms 38.5MB 1270ms 3ms deno 1.25.3

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 260ms 0.2ms 1.0MB 250ms 0ms nim/clang 1.6.6
nim 1.nim 261ms 1.2ms 1.0MB 250ms 0ms nim 1.6.6
typescript 7.ts 345ms 1.5ms 36.1MB 330ms 7ms deno 1.25.3