Typescript VS Ruby benchmarks

Current benchmark data was generated on Thu Jul 31 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
typescript 1.ts 1047ms 5.2ms 397.8MB 1010ms 193ms deno 2.4.2
ruby 1.rb timeout 0.0ms 70.0MB 4953ms 37ms ruby 3.4.5
ruby 1.rb timeout 0.0ms 109.4MB 4920ms 70ms ruby/yjit 3.4.5
ruby 1.rb timeout 0.0ms 787.2MB 6683ms 693ms truffleruby 24.2.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 130ms 3.8ms 80.7MB 133ms 20ms deno 2.4.2
ruby 1.rb 509ms 7.0ms 20.3MB 483ms 10ms ruby/yjit 3.4.5
ruby 1-m.rb 635ms 20ms 428.0MB 1267ms 177ms truffleruby 24.2.2
ruby 1.rb 940ms 17ms 19.5MB 917ms 10ms ruby 3.4.5

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1228ms 12ms 122.6MB 1213ms 60ms deno 2.4.2
ruby 1.rb 1415ms 25ms 63.8MB 1330ms 67ms ruby/yjit 3.4.5
ruby 1.rb 1928ms 34ms 63.0MB 1853ms 63ms ruby 3.4.5
ruby 1.rb timeout 0.0ms 353.4MB 4533ms 1500ms truffleruby 24.2.2

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 145ms 2.1ms 73.0MB 123ms 20ms deno 2.4.2
ruby 1.rb 151ms 2.0ms 25.6MB 120ms 17ms ruby/yjit 3.4.5
ruby 1.rb 187ms 8.1ms 25.1MB 153ms 17ms ruby 3.4.5
ruby 1.rb timeout 0.0ms 334.4MB 4743ms 1420ms truffleruby 24.2.2

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 6.rb 2026ms 8.9ms 23.0MB 2000ms 10ms ruby/yjit 3.4.5
typescript 1.ts 2079ms 26ms 59.4MB 1963ms 120ms deno 2.4.2
ruby 6-m.rb 2184ms 84ms 400.7MB 5670ms 340ms truffleruby 24.2.2
ruby 6.rb 3724ms 16ms 22.4MB 3700ms 10ms ruby 3.4.5

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 240ms 4.3ms 59.2MB 223ms 23ms deno 2.4.2
ruby 6.rb 255ms 0.3ms 15.0MB 237ms 3ms ruby/yjit 3.4.5
ruby 6.rb 428ms 2.0ms 14.5MB 407ms 3ms ruby 3.4.5
ruby 6-m.rb 828ms 21ms 378.4MB 2057ms 180ms truffleruby 24.2.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 28ms 1.1ms 45.9MB 10ms 6ms deno 2.4.2
ruby 1.rb 36ms 0.9ms 141.7MB 14ms 26ms truffleruby 24.2.2
ruby 1.rb 52ms 1.5ms 13.1MB 38ms 2ms ruby/yjit 3.4.5
ruby 1.rb 55ms 1.6ms 12.8MB 36ms 8ms ruby 3.4.5

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2-m.ts 677ms 8.6ms 243.0MB 637ms 417ms deno 2.4.2
typescript 1-m.ts 708ms 1.2ms 246.7MB 653ms 437ms deno 2.4.2
typescript 1-http2.ts 936ms 6.9ms 251.3MB 897ms 403ms deno 2.4.2
typescript 2-tls.ts 1326ms 9.9ms 266.5MB 1210ms 493ms deno 2.4.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 171ms 3.9ms 94.2MB 127ms 90ms deno 2.4.2
typescript 2.ts 176ms 7.5ms 94.4MB 133ms 97ms deno 2.4.2
typescript 1-http2.ts 223ms 3.6ms 95.5MB 190ms 87ms deno 2.4.2
typescript 2-tls.ts 272ms 5.6ms 100.1MB 213ms 113ms deno 2.4.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 163ms 3.9ms 95.1MB 163ms 33ms deno 2.4.2
ruby 1.rb 251ms 0.9ms 27.6MB 223ms 13ms ruby/yjit 3.4.5
ruby 1.rb 259ms 4.1ms 27.6MB 233ms 10ms ruby 3.4.5
ruby 1-m.rb 4471ms 224ms 505.6MB 11703ms 343ms truffleruby 24.2.2

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1196ms 4.8ms 415.4MB 1307ms 160ms deno 2.4.2
ruby 1.rb 2101ms 3.6ms 132.3MB 2010ms 77ms ruby/yjit 3.4.5
ruby 1.rb 2111ms 19ms 133.0MB 2023ms 70ms ruby 3.4.5
ruby 1.rb timeout 0.0ms 505.5MB 13147ms 380ms truffleruby 24.2.2

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 287ms 4.4ms 64.0MB 277ms 17ms deno 2.4.2
ruby 1.rb 335ms 0.3ms 13.5MB 313ms 7ms ruby/yjit 3.4.5
ruby 1.rb 551ms 4.0ms 12.9MB 530ms 3ms ruby 3.4.5
typescript 1.ts 592ms 4.4ms 63.0MB 577ms 13ms deno 2.4.2
ruby 1-m.rb 730ms 8.7ms 365.9MB 1337ms 147ms truffleruby 24.2.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 763ms 4.5ms 72.9MB 747ms 20ms deno 2.4.2
ruby 1.rb 900ms 12ms 13.5MB 877ms 10ms ruby/yjit 3.4.5
ruby 1-m.rb 1308ms 61ms 421.6MB 1850ms 193ms truffleruby 24.2.2
ruby 1.rb 1524ms 25ms 12.9MB 1510ms 0ms ruby 3.4.5
typescript 1.ts 1713ms 32ms 70.0MB 1693ms 17ms deno 2.4.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 2.ts 151ms 2.8ms 59.5MB 137ms 13ms deno 2.4.2
typescript 1.ts 174ms 1.9ms 60.2MB 160ms 10ms deno 2.4.2
ruby 1.rb 196ms 1.8ms 13.5MB 177ms 3ms ruby/yjit 3.4.5
ruby 1.rb 303ms 5.0ms 12.8MB 283ms 3ms ruby 3.4.5
ruby 1-m.rb 520ms 25ms 358.0MB 1023ms 143ms truffleruby 24.2.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 577ms 7.4ms 229.1MB 583ms 117ms deno 2.4.2
ruby 1-m.rb 3884ms 62ms 536.7MB 9777ms 367ms truffleruby 24.2.2
ruby 1.rb timeout 0.0ms 94.1MB 4943ms 43ms ruby 3.4.5
ruby 1.rb timeout 0.0ms 94.1MB 4937ms 50ms ruby/yjit 3.4.5

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 158ms 3.8ms 99.7MB 157ms 33ms deno 2.4.2
ruby 1-m.rb 1987ms 49ms 588.0MB 5123ms 283ms truffleruby 24.2.2
ruby 1.rb 3281ms 18ms 38.3MB 3247ms 20ms ruby/yjit 3.4.5
ruby 1.rb 4404ms 9.7ms 37.6MB 4367ms 20ms ruby 3.4.5

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 465ms 3.8ms 58.0MB 447ms 10ms deno 2.4.2
ruby 2.rb 833ms 18ms 322.1MB 1097ms 117ms truffleruby 24.2.2
ruby 2.rb timeout 0.0ms 12.8MB 4983ms 3ms ruby 3.4.5
ruby 2.rb timeout 0.0ms 13.5MB 4980ms 7ms ruby/yjit 3.4.5

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 6.ts 78ms 1.5ms 58.1MB 60ms 10ms deno 2.4.2
ruby 2-m.rb 324ms 16ms 309.6MB 573ms 117ms truffleruby 24.2.2
ruby 2.rb 1047ms 3.1ms 13.5MB 1030ms 0ms ruby/yjit 3.4.5
ruby 2.rb 2780ms 54ms 12.8MB 2763ms 3ms ruby 3.4.5

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb timeout 0.0ms 130.0MB 4823ms 163ms ruby 3.4.5
ruby 1.rb timeout 0.0ms 131.0MB 4830ms 160ms ruby/yjit 3.4.5
ruby 1.rb timeout 0.0ms 458.8MB 13220ms 440ms truffleruby 24.2.2
typescript 3.ts timeout 0.0ms 135.4MB 4990ms 50ms deno 2.4.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 3.ts 1193ms 8.8ms 80.2MB 1127ms 83ms deno 2.4.2
ruby 1-m.rb 1492ms 74ms 387.7MB 3950ms 187ms truffleruby 24.2.2
ruby 1.rb 1790ms 21ms 130.9MB 1647ms 130ms ruby/yjit 3.4.5
ruby 1.rb 1815ms 23ms 130.0MB 1670ms 130ms ruby 3.4.5

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 1944ms 17ms 60.7MB 1953ms 13ms deno 2.4.2

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 1.ts 527ms 7.3ms 59.9MB 527ms 17ms deno 2.4.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 4069ms 13ms 57.6MB 4053ms 10ms deno 2.4.2
ruby 4.rb timeout 0.0ms 12.9MB 4980ms 3ms ruby 3.4.5
ruby 4.rb timeout 0.0ms 13.5MB 4980ms 3ms ruby/yjit 3.4.5
ruby 4.rb timeout 0.0ms 428.2MB 5187ms 237ms truffleruby 24.2.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 1039ms 4.6ms 57.6MB 1023ms 10ms deno 2.4.2
ruby 4.rb 4860ms 18ms 425.4MB 5180ms 210ms truffleruby 24.2.2
ruby 4.rb timeout 0.0ms 12.9MB 4983ms 0ms ruby 3.4.5
ruby 4.rb timeout 0.0ms 13.6MB 4980ms 0ms ruby/yjit 3.4.5

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
typescript 7.ts 286ms 2.4ms 55.8MB 270ms 7ms deno 2.4.2
ruby 4.rb 1471ms 40ms 405.0MB 1827ms 153ms truffleruby 24.2.2
ruby 4.rb timeout 0.0ms 12.9MB 4983ms 0ms ruby 3.4.5
ruby 4.rb timeout 0.0ms 13.6MB 4983ms 0ms ruby/yjit 3.4.5