← Back to context

Comment by johnisgood

1 day ago

With this and https://github.com/Beariish/bolt/blob/main/doc/Bolt%20Perfor..., it is indeed confusing without testing it out myself.

That said, somehow I do not believe it is faster than LuaJIT. We will see.

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