← Back to context

Comment by megapoliss

1 day ago

I used brainfuck interpreter https://github.com/Beariish/bolt/blob/main/examples/bf.bolt vs lua / luajit implementations from https://github.com/kostya/benchmarks

Just checked with nbody:

  - still 10 times slower than luajit
  - 2 times slower than luajit -joff
  - but 20% faster than lua 5.4
  - but uses 47 Mb RAM vs 2.5 Mb for lua/luajit

I appreciate the followup here. The brainfuck interpreter isn't meant to be a benchmark notably, it's a naive implementation for the sake of the example.

I did spot some poor code in the Bolt version of nbody that can be changed (the usage of `.each()` in the hot loop is creating loads of temporary iterators, that's the memory difference.)

luajit -joff does perform better even with this change, but I observe closer to 15% than a 2x difference

  • for nbody 500000 on my i5-9300H CPU @ 2.40GHz

      - 487.41 millis / 2364 kb ram for luajit -joff
      - 770.17 millis / 41712 kb ram for bolt
    
      770.17 / 487.41 ~~ 1.58 cpu, not 2x, but not 15% either
      41712 / 2364 ~~ 17.64 ram