Current benchmark data was generated on Sat Jan 28 2023, full log can be found HERE
CONTRIBUTIONS are WELCOME!
* -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.)
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 1250ms | 7.2ms | 244.6MB | 1580ms | 50ms | bun 0.5.1 |
javascript | 1.js | 3580ms | 51ms | 262.3MB | 2593ms | 1213ms | node 19.5.0 |
ruby | 1.rb | timeout | 0.0ms | 72.6MB | 4943ms | 40ms | ruby 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 115.6MB | 4917ms | 60ms | ruby/yjit 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 612.7MB | 8020ms | 290ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 120ms | 5.4ms | 103.9MB | 103ms | 13ms | bun 0.5.1 |
javascript | 1.js | 165ms | 1.7ms | 69.5MB | 153ms | 17ms | node 19.5.0 |
ruby | 1.rb | 565ms | 6.7ms | 40.7MB | 530ms | 17ms | ruby/yjit 3.2.0 |
ruby | 1.rb | 1011ms | 5.8ms | 40.3MB | 973ms | 20ms | ruby 3.2.0 |
ruby | 1-m.rb | 1081ms | 25ms | 419.3MB | 1780ms | 140ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 2275ms | 38ms | 81.0MB | 2327ms | 30ms | node 19.5.0 |
ruby | 1.rb | 3205ms | 134ms | 82.8MB | 3133ms | 50ms | ruby/yjit 3.2.0 |
javascript | 1.js | 3607ms | 97ms | 108.9MB | 3583ms | 27ms | bun 0.5.1 |
ruby | 1.rb | 3867ms | 456ms | 82.1MB | 3787ms | 60ms | ruby 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 942.2MB | 4210ms | 1413ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 212ms | 5.6ms | 62.5MB | 187ms | 13ms | node 19.5.0 |
ruby | 1.rb | 231ms | 3.0ms | 44.9MB | 190ms | 27ms | ruby/yjit 3.2.0 |
ruby | 1.rb | 240ms | 0.5ms | 44.5MB | 203ms | 20ms | ruby 3.2.0 |
javascript | 1.js | 258ms | 5.7ms | 103.5MB | 263ms | 17ms | bun 0.5.1 |
ruby | 1.rb | timeout | 0.0ms | 908.0MB | 4197ms | 1183ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 400ms | 10ms | 99.9MB | 380ms | 13ms | bun 0.5.1 |
javascript | 1.js | 403ms | 0.2ms | 59.4MB | 407ms | 20ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 183ms | 1.0ms | 52.9MB | 190ms | 3ms | node 19.5.0 |
javascript | 1.js | 414ms | 0.3ms | 87.6MB | 400ms | 10ms | bun 0.5.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 15ms | 0.5ms | 49.9MB | 0ms | 0ms | bun 0.5.1 |
javascript | 1.js | 43ms | 0.8ms | 44.8MB | 28ms | 4ms | node 19.5.0 |
ruby | 1.rb | 45ms | 2.4ms | 154.4MB | 18ms | 30ms | truffleruby 22.3.1 |
ruby | 1.rb | 72ms | 1.0ms | 32.2MB | 50ms | 10ms | ruby 3.2.0 |
ruby | 1.rb | 77ms | 0.9ms | 32.3MB | 50ms | 12ms | ruby/yjit 3.2.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.bun.js | 136ms | 2.6ms | 88.9MB | 73ms | 53ms | bun 0.5.1 |
javascript | 1.js | 3900ms | 51ms | 154.6MB | 1713ms | 353ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.bun.js | 87ms | 5.3ms | 74.2MB | 23ms | 27ms | bun 0.5.1 |
javascript | 1.js | 373ms | 19ms | 70.1MB | 350ms | 83ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 131ms | 1.3ms | 92.3MB | 110ms | 7ms | bun 0.5.1 |
javascript | 1.js | 170ms | 1.6ms | 75.5MB | 147ms | 20ms | node 19.5.0 |
ruby | 1.rb | 440ms | 2.6ms | 52.9MB | 400ms | 23ms | ruby 3.2.0 |
ruby | 1.rb | 461ms | 9.3ms | 54.5MB | 410ms | 30ms | ruby/yjit 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 465.4MB | 9110ms | 200ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 722ms | 0.6ms | 257.6MB | 697ms | 47ms | bun 0.5.1 |
javascript | 1.js | 1074ms | 7.9ms | 281.7MB | 1037ms | 103ms | node 19.5.0 |
ruby | 1.rb | 4007ms | 6.6ms | 174.0MB | 3903ms | 87ms | ruby/yjit 3.2.0 |
ruby | 1.rb | 4060ms | 98ms | 173.9MB | 3957ms | 90ms | ruby 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 432.6MB | 9203ms | 197ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 2.js | 376ms | 2.0ms | 54.6MB | 363ms | 3ms | node 19.5.0 |
ruby | 1.rb | 448ms | 2.7ms | 33.0MB | 420ms | 13ms | ruby/yjit 3.2.0 |
javascript | 1.js | 558ms | 5.7ms | 142.4MB | 547ms | 30ms | bun 0.5.1 |
ruby | 1.rb | 602ms | 5.0ms | 32.3MB | 580ms | 3ms | ruby 3.2.0 |
javascript | 2.js | 792ms | 5.3ms | 109.3MB | 800ms | 13ms | bun 0.5.1 |
ruby | 1-m.rb | 832ms | 33ms | 335.1MB | 1183ms | 100ms | truffleruby 22.3.1 |
javascript | 1.js | 1034ms | 5.1ms | 61.8MB | 1013ms | 10ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 2.js | 1014ms | 6.1ms | 61.5MB | 990ms | 17ms | node 19.5.0 |
ruby | 1.rb | 1183ms | 7.0ms | 33.0MB | 1157ms | 10ms | ruby/yjit 3.2.0 |
ruby | 1.rb | 1478ms | 87ms | 370.8MB | 1977ms | 150ms | truffleruby 22.3.1 |
javascript | 1.js | 1587ms | 8.0ms | 164.9MB | 1607ms | 23ms | bun 0.5.1 |
ruby | 1.rb | 1648ms | 12ms | 32.4MB | 1620ms | 10ms | ruby 3.2.0 |
javascript | 2.js | 2293ms | 13ms | 120.6MB | 2303ms | 10ms | bun 0.5.1 |
javascript | 1.js | 2965ms | 7.7ms | 62.1MB | 2940ms | 17ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 2.js | 203ms | 3.7ms | 49.1MB | 193ms | 3ms | node 19.5.0 |
ruby | 1.rb | 264ms | 2.9ms | 32.9MB | 233ms | 13ms | ruby/yjit 3.2.0 |
javascript | 1.js | 296ms | 6.1ms | 117.4MB | 287ms | 17ms | bun 0.5.1 |
ruby | 1.rb | 334ms | 3.9ms | 32.3MB | 307ms | 17ms | ruby 3.2.0 |
javascript | 1.js | 376ms | 2.1ms | 49.6MB | 367ms | 3ms | node 19.5.0 |
javascript | 2.js | 429ms | 10ms | 102.0MB | 440ms | 17ms | bun 0.5.1 |
ruby | 1-m.rb | 619ms | 11ms | 311.7MB | 913ms | 103ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 735ms | 6.0ms | 153.3MB | 813ms | 30ms | bun 0.5.1 |
javascript | 1.js | 784ms | 10ms | 121.8MB | 803ms | 43ms | node 19.5.0 |
ruby | 1.rb | timeout | 0.0ms | 96.4MB | 4933ms | 47ms | ruby 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 97.0MB | 4927ms | 57ms | ruby/yjit 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 562.9MB | 9010ms | 220ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 169ms | 5.3ms | 104.0MB | 147ms | 23ms | bun 0.5.1 |
javascript | 1.js | 230ms | 5.3ms | 90.0MB | 203ms | 37ms | node 19.5.0 |
ruby | 1-m.rb | 3464ms | 95ms | 580.1MB | 6290ms | 240ms | truffleruby 22.3.1 |
ruby | 1.rb | 4125ms | 19ms | 53.7MB | 4087ms | 23ms | ruby/yjit 3.2.0 |
ruby | 1.rb | 4936ms | 27ms | 52.7MB | 4890ms | 23ms | ruby 3.2.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 6.js | 606ms | 7.3ms | 47.3MB | 593ms | 0ms | node 19.5.0 |
javascript | 6.js | 1009ms | 0.7ms | 68.0MB | 1000ms | 10ms | bun 0.5.1 |
ruby | 2.rb | 1036ms | 17ms | 305.8MB | 1233ms | 93ms | truffleruby 22.3.1 |
ruby | 2.rb | timeout | 0.0ms | 32.1MB | 4977ms | 7ms | ruby 3.2.0 |
ruby | 2.rb | timeout | 0.0ms | 33.0MB | 4973ms | 10ms | ruby/yjit 3.2.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 6.js | 107ms | 2.6ms | 47.4MB | 93ms | 3ms | node 19.5.0 |
javascript | 6.js | 121ms | 0.7ms | 61.9MB | 113ms | 7ms | bun 0.5.1 |
ruby | 2-m.rb | 471ms | 46ms | 316.8MB | 680ms | 137ms | truffleruby 22.3.1 |
ruby | 2.rb | 2176ms | 4.7ms | 33.0MB | 2153ms | 7ms | ruby/yjit 3.2.0 |
ruby | 2.rb | 3381ms | 35ms | 32.3MB | 3360ms | 3ms | ruby 3.2.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 3026ms | 3.2ms | 102.2MB | 3037ms | 27ms | bun 0.5.1 |
javascript | 1.js | 3297ms | 5.2ms | 51.4MB | 3300ms | 10ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 1.js | 785ms | 4.4ms | 106.8MB | 790ms | 17ms | bun 0.5.1 |
javascript | 1.js | 872ms | 6.1ms | 50.0MB | 873ms | 3ms | node 19.5.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 3.js | timeout | 0.0ms | 79.0MB | 4980ms | 20ms | node 19.5.0 |
ruby | 1.rb | timeout | 0.0ms | 157.9MB | 4937ms | 47ms | ruby 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 159.9MB | 4923ms | 53ms | ruby/yjit 3.2.0 |
ruby | 1.rb | timeout | 0.0ms | 461.5MB | 9333ms | 257ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 3.js | 1552ms | 2.5ms | 62.3MB | 1543ms | 17ms | node 19.5.0 |
ruby | 1-m.rb | 2020ms | 26ms | 435.4MB | 3657ms | 173ms | truffleruby 22.3.1 |
ruby | 1.rb | 2424ms | 8.0ms | 158.0MB | 2343ms | 63ms | ruby 3.2.0 |
ruby | 1.rb | 2426ms | 8.8ms | 159.8MB | 2343ms | 67ms | ruby/yjit 3.2.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 6-m.js | 2751ms | 43ms | 68.9MB | 5193ms | 17ms | node 19.5.0 |
ruby | 4.rb | timeout | 0.0ms | 32.1MB | 4967ms | 13ms | ruby 3.2.0 |
ruby | 4.rb | timeout | 0.0ms | 32.8MB | 4970ms | 13ms | ruby/yjit 3.2.0 |
ruby | 4.rb | timeout | 0.0ms | 566.4MB | 5240ms | 247ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 6-m.js | 835ms | 6.6ms | 68.8MB | 1467ms | 23ms | node 19.5.0 |
ruby | 4.rb | timeout | 0.0ms | 32.2MB | 4973ms | 10ms | ruby 3.2.0 |
ruby | 4.rb | timeout | 0.0ms | 32.8MB | 4973ms | 13ms | ruby/yjit 3.2.0 |
ruby | 4.rb | timeout | 0.0ms | 562.1MB | 5453ms | 223ms | truffleruby 22.3.1 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
javascript | 6.js | 404ms | 15ms | 66.5MB | 533ms | 23ms | node 19.5.0 |
ruby | 4.rb | 2585ms | 15ms | 476.7MB | 3107ms | 167ms | truffleruby 22.3.1 |
ruby | 4.rb | timeout | 0.0ms | 32.4MB | 4967ms | 10ms | ruby 3.2.0 |
ruby | 4.rb | timeout | 0.0ms | 32.7MB | 4967ms | 13ms | ruby/yjit 3.2.0 |