Typescript VS Zig benchmarks

Current benchmark data was generated on Sun Dec 01 2024, 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
typescript 1-m.ts 1300ms 27ms 289.6MB 2270ms 173ms deno 2.1.2
zig 1.zig 1869ms 58ms 49.1MB 1843ms 10ms zig 0.13.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 130ms 0.6ms 83.2MB 137ms 20ms deno 2.1.2
zig 1.zig 149ms 2.9ms 7.1MB 140ms 0ms zig 0.13.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1354ms 23ms 92.3MB 1403ms 43ms deno 2.1.2

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 147ms 3.6ms 75.5MB 133ms 17ms deno 2.1.2

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 87ms 1.0ms 1.1MB 80ms 0ms zig 0.13.0
typescript 1.ts 2099ms 27ms 59.6MB 1957ms 147ms deno 2.1.2

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 10ms 0.1ms 1.1MB 0ms 0ms zig 0.13.0
typescript 1.ts 264ms 21ms 59.1MB 250ms 17ms deno 2.1.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 1.1ms 0.1ms 1.3MB 0ms 0ms zig 0.13.0
typescript 1.ts 29ms 0.8ms 50.0MB 10ms 8ms deno 2.1.2

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 724ms 16ms 220.2MB 637ms 447ms deno 2.1.2
typescript 2.ts 756ms 47ms 219.7MB 653ms 447ms deno 2.1.2
typescript 1-http2.ts 921ms 55ms 215.5MB 840ms 430ms deno 2.1.2
typescript 2-tls.ts 1482ms 33ms 238.7MB 1283ms 543ms deno 2.1.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 193ms 1.2ms 99.5MB 150ms 97ms deno 2.1.2
typescript 2.ts 209ms 16ms 96.2MB 147ms 110ms deno 2.1.2
typescript 1-http2.ts 234ms 5.1ms 101.5MB 187ms 97ms deno 2.1.2
typescript 2-tls.ts 380ms 6.2ms 102.9MB 270ms 150ms deno 2.1.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 167ms 1.4ms 94.8MB 163ms 33ms deno 2.1.2

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1219ms 10ms 432.1MB 1357ms 123ms deno 2.1.2

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 35ms 1.7ms 2.9MB 23ms 0ms zig 0.13.0
typescript 2.ts 270ms 3.0ms 69.3MB 253ms 17ms deno 2.1.2
typescript 1.ts 572ms 3.4ms 61.9MB 550ms 17ms deno 2.1.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 98ms 2.2ms 2.9MB 90ms 0ms zig 0.13.0
typescript 2.ts 740ms 7.1ms 74.0MB 730ms 20ms deno 2.1.2
typescript 1.ts 1651ms 25ms 72.1MB 1627ms 20ms deno 2.1.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 16ms 1.3ms 1.4MB 10ms 0ms zig 0.13.0
typescript 2.ts 142ms 3.0ms 64.8MB 137ms 7ms deno 2.1.2
typescript 1.ts 167ms 2.2ms 60.9MB 150ms 10ms deno 2.1.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 548ms 3.5ms 134.6MB 640ms 63ms deno 2.1.2
zig 1.zig 829ms 2.4ms 41.1MB 803ms 10ms zig 0.13.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 161ms 3.8ms 100.2MB 167ms 27ms deno 2.1.2
zig 1.zig 168ms 1.4ms 11.1MB 157ms 0ms zig 0.13.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 273ms 0.3ms 1.1MB 263ms 0ms zig 0.13.0
zig 1.zig 313ms 0.6ms 1.3MB 300ms 0ms zig 0.13.0
typescript 6.ts 463ms 2.6ms 60.5MB 453ms 7ms deno 2.1.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 29ms 0.1ms 1.3MB 20ms 0ms zig 0.13.0
zig 1.zig 33ms 0.2ms 1.3MB 23ms 0ms zig 0.13.0
typescript 6.ts 80ms 0.9ms 58.6MB 63ms 10ms deno 2.1.2

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 2452ms 1.2ms 2.3MB 2417ms 20ms zig 0.13.0
typescript 3.ts timeout 0.0ms 99.9MB 4970ms 47ms deno 2.1.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 568ms 3.4ms 1.8MB 557ms 0ms zig 0.13.0
typescript 3.ts 1308ms 8.7ms 79.9MB 1253ms 77ms deno 2.1.2

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1938ms 1.3ms 60.5MB 1947ms 10ms deno 2.1.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 522ms 1.1ms 60.2MB 527ms 10ms deno 2.1.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 476ms 6.6ms 3.8MB 1563ms 3ms zig 0.13.0
zig 2.zig 917ms 5.5ms 1.5MB 907ms 0ms zig 0.13.0
zig 1.zig 3670ms 5.0ms 1.5MB 3663ms 0ms zig 0.13.0
typescript 7.ts 4067ms 49ms 60.3MB 4053ms 7ms deno 2.1.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 125ms 0.4ms 3.7MB 273ms 7ms zig 0.13.0
zig 2.zig 230ms 0.8ms 1.4MB 220ms 0ms zig 0.13.0
zig 1.zig 924ms 1.5ms 1.4MB 910ms 0ms zig 0.13.0
typescript 7.ts 1036ms 4.2ms 61.8MB 1017ms 13ms deno 2.1.2

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 38ms 0.6ms 3.7MB 37ms 0ms zig 0.13.0
zig 2.zig 60ms 0.3ms 1.4MB 50ms 0ms zig 0.13.0
zig 1.zig 232ms 0.9ms 1.4MB 220ms 0ms zig 0.13.0
typescript 7.ts 287ms 1.5ms 62.1MB 267ms 17ms deno 2.1.2