Typescript VS Nim benchmarks

Current benchmark data was generated on Mon Apr 14 2025, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -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
nim 2.nim 934ms 16ms 34.6MB 917ms 3ms nim 2.2.2
nim 2.nim 960ms 15ms 34.9MB 947ms 0ms nim/clang 2.2.2
typescript 1.ts 1061ms 15ms 470.5MB 1007ms 203ms deno 2.2.9

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 88ms 1.6ms 5.5MB 80ms 0ms nim 2.2.2
nim 2.nim 91ms 2.6ms 5.8MB 80ms 0ms nim/clang 2.2.2
typescript 1.ts 131ms 3.6ms 78.5MB 133ms 27ms deno 2.2.9

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1155ms 1.4ms 118.5MB 1147ms 53ms deno 2.2.9
nim 1.nim timeout 0.0ms 559.4MB 2500ms 2040ms nim 2.2.2
nim 1.nim timeout 0.0ms 555.8MB 2460ms 2080ms nim/clang 2.2.2

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 147ms 0.7ms 68.8MB 127ms 20ms deno 2.2.9
nim 1.nim 4313ms 32ms 519.8MB 2100ms 1790ms nim/clang 2.2.2
nim 1.nim 4341ms 20ms 519.4MB 2177ms 1743ms nim 2.2.2

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 187ms 1.4ms 1.5MB 180ms 0ms nim 2.2.2
nim 2.nim 236ms 2.8ms 1.8MB 223ms 0ms nim/clang 2.2.2
nim 1.nim 554ms 2.2ms 1.8MB 453ms 90ms nim/clang 2.2.2
nim 1.nim 575ms 2.2ms 1.5MB 473ms 90ms nim 2.2.2
typescript 1.ts 2070ms 3.3ms 57.5MB 1927ms 150ms deno 2.2.9

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 21ms 0.6ms 1.5MB 10ms 0ms nim 2.2.2
nim 2.nim 26ms 0.3ms 1.8MB 20ms 0ms nim/clang 2.2.2
nim 1.nim 58ms 0.8ms 1.8MB 40ms 0ms nim/clang 2.2.2
nim 1.nim 61ms 0.3ms 1.5MB 40ms 10ms nim 2.2.2
typescript 1.ts 243ms 2.5ms 57.9MB 227ms 20ms deno 2.2.9

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1.1ms 0.1ms 1.5MB 0ms 0ms nim 2.2.2
nim 1.nim 1.1ms 0.1ms 1.9MB 0ms 0ms nim/clang 2.2.2
typescript 1.ts 26ms 0.7ms 44.0MB 10ms 6ms deno 2.2.9

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1-m.ts 659ms 2.9ms 239.1MB 617ms 423ms deno 2.2.9
typescript 2-m.ts 672ms 13ms 238.7MB 610ms 443ms deno 2.2.9
typescript 1-http2.ts 827ms 6.8ms 232.1MB 750ms 430ms deno 2.2.9
typescript 2-tls.ts 1394ms 16ms 262.4MB 1250ms 517ms deno 2.2.9

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 166ms 3.4ms 91.4MB 127ms 87ms deno 2.2.9
typescript 1.ts 167ms 1.5ms 91.0MB 123ms 93ms deno 2.2.9
typescript 1-http2.ts 210ms 1.4ms 93.6MB 157ms 97ms deno 2.2.9
typescript 2-tls.ts 349ms 2.2ms 98.3MB 280ms 120ms deno 2.2.9

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 168ms 0.7ms 91.2MB 163ms 33ms deno 2.2.9

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1221ms 24ms 416.6MB 1347ms 153ms deno 2.2.9

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 110ms 0.4ms 1.4MB 100ms 0ms nim 2.2.2
nim 2.nim 114ms 0.7ms 1.9MB 110ms 0ms nim/clang 2.2.2
typescript 2.ts 277ms 1.9ms 62.1MB 267ms 17ms deno 2.2.9
typescript 1.ts 580ms 4.5ms 61.1MB 560ms 13ms deno 2.2.9
nim 1.nim timeout 0.0ms 1.3MB 4990ms 0ms nim 2.2.2
nim 1.nim timeout 0.0ms 1.5MB 4990ms 0ms nim/clang 2.2.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 326ms 2.2ms 1.4MB 320ms 0ms nim 2.2.2
nim 2.nim 340ms 0.3ms 1.6MB 330ms 0ms nim/clang 2.2.2
typescript 2.ts 748ms 4.0ms 70.2MB 733ms 20ms deno 2.2.9
typescript 1.ts 1664ms 5.6ms 67.6MB 1640ms 13ms deno 2.2.9
nim 1.nim timeout 0.0ms 1.3MB 4990ms 0ms nim 2.2.2
nim 1.nim timeout 0.0ms 1.5MB 4990ms 0ms nim/clang 2.2.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 49ms 0.2ms 1.5MB 40ms 0ms nim/clang 2.2.2
nim 2.nim 52ms 1.4ms 1.3MB 43ms 0ms nim 2.2.2
typescript 2.ts 143ms 2.0ms 58.4MB 133ms 10ms deno 2.2.9
typescript 1.ts 175ms 2.4ms 56.8MB 163ms 10ms deno 2.2.9
nim 1.nim 446ms 2.7ms 1.5MB 440ms 0ms nim/clang 2.2.2
nim 1.nim 479ms 2.2ms 1.3MB 470ms 0ms nim 2.2.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 532ms 4.4ms 34.6MB 513ms 0ms nim 2.2.2
typescript 1.ts 562ms 8.3ms 227.8MB 570ms 110ms deno 2.2.9
nim 1.nim 609ms 7.4ms 34.9MB 593ms 0ms nim/clang 2.2.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 113ms 0.7ms 9.6MB 100ms 0ms nim 2.2.2
nim 1.nim 134ms 2.0ms 9.9MB 123ms 0ms nim/clang 2.2.2
typescript 1.ts 157ms 1.0ms 97.6MB 157ms 33ms deno 2.2.9

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 319ms 0.9ms 1.8MB 310ms 0ms nim 2.2.2
nim 2.nim 342ms 1.8ms 2.0MB 330ms 0ms nim/clang 2.2.2
typescript 6.ts 470ms 5.7ms 54.0MB 457ms 7ms deno 2.2.9

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 34ms 0.6ms 1.8MB 30ms 0ms nim 2.2.2
nim 2.nim 38ms 0.5ms 2.0MB 30ms 0ms nim/clang 2.2.2
typescript 6.ts 77ms 1.0ms 54.5MB 63ms 10ms deno 2.2.9

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 3.ts 4928ms 16ms 133.1MB 4820ms 150ms deno 2.2.9

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 3.ts 1131ms 3.5ms 77.1MB 1083ms 67ms deno 2.2.9

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1902ms 8.2ms 56.8MB 1910ms 13ms deno 2.2.9

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 510ms 2.7ms 55.5MB 513ms 10ms deno 2.2.9

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 3587ms 0.7ms 1.6MB 3580ms 0ms nim/clang 2.2.2
nim 1.nim 3592ms 2.0ms 1.4MB 3580ms 0ms nim 2.2.2
typescript 7.ts 4033ms 4.4ms 54.0MB 4017ms 10ms deno 2.2.9

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 900ms 0.9ms 1.5MB 890ms 0ms nim/clang 2.2.2
nim 1.nim 902ms 2.5ms 1.3MB 890ms 0ms nim 2.2.2
typescript 7.ts 1037ms 4.4ms 54.7MB 1020ms 7ms deno 2.2.9

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 227ms 0.4ms 1.5MB 220ms 0ms nim/clang 2.2.2
nim 1.nim 227ms 1.0ms 1.3MB 220ms 0ms nim 2.2.2
typescript 7.ts 284ms 2.0ms 54.4MB 270ms 10ms deno 2.2.9