Hacker News new | ask | show | jobs
by greysteil 3097 days ago
Nice to see the 3x3 work continuing to go well with that 5-10% speed up. For anyone who hasn’t seen it, Ruby declared a target for Ruby 3.0 to be 3x faster than 2.0.

http://engineering.appfolio.com/appfolio-engineering/2015/11...

1 comments

What particular speed improvements do we expect from 2.5.0 release? String interpolation speedup?
ERB generation should be a lot faster, which will be a boon for a lot of Rails apps, and according to the release notes there's a 5-10% performance improvement overall from removing all trace instructions from bytecode.
Rails has not used the stdlib ERB implementation for a long time. As of 5.1 it uses erubi [0] and prior to that it used erubis. [1] So the performance improvements to the stdlib ERB implementation will not affect rails apps.

[0] https://github.com/rails/rails/pull/27757 [1] https://github.com/rails/rails/pull/16773

In addition to the ERB generation and removing all the tracepoints mentioned in the sister comment, there is also a change in the hash function used for Hashmaps. The new one needs roughly half the hashing iterations so it should slightly speed up any application that uses hashtables. (aka pretty much every ruby app)
Among others, from the linked article:

    About 5-10% performance improvement by removing all 
    trace instructions from overall bytecode (instruction 
    sequences). The trace instruction was added to support 
    the TracePoint. However, in most cases, TracePoint is 
    not used and trace instructions are pure overhead. 
    Instead, now we use a dynamic instrumentation technique. 
    See [Feature #14104] for more details.