Communication between ractors is supported by exchanging messages. Ractor enables you to make thread-safe parallel programs because ractors can not share normal objects. You can make multiple ractors and you can run them in parallel. Ractor is an Actor-model like concurrent abstraction designed to provide a parallel execution feature without thread-safety concerns. With Ractor, along with Async Fiber, Ruby will be a real concurrent language. Stay tuned for Ruby 3.1 for further improvements on this issue. See NEWS for details.Īs of Ruby 3.0, JIT is supposed to give performance improvements in limited workloads, such as games ( Optcarrot), AI ( Rubykon), or whatever application that spends the majority of time in calling a few methods many times.Īlthough Ruby 3.0 significantly decreased the size of JIT-ed code, it is still not ready for optimizing workloads like Rails, which often spend time on so many methods and therefore suffer from i-cache misses exacerbated by JIT. Many improvements were implemented in MJIT. I am honored to see the core team actually accomplished to make Rub圓.0 three times faster than Ruby2.0 (in some benchmarks). When I first declared “Rub圓x3” in the conference keynote, many including members of the core team felt “Matz is a boaster”. With the above performance improvement, Ruby 3.0 introduces several new features described below. It may not be 3x faster depending on your environment or benchmark. With Optcarrot benchmark, which measures single thread performance based on NES’s game emulation workload, it achieved 3x faster performance than Ruby 2.0! These were measured at the environment noted in /hardware.html.
Especially about performance, Matz stated “Rub圓 will be 3 times faster than Ruby2” a.k.a. From 2015 we developed hard toward Ruby 3, whose goal is performance, concurrency, and Typing. We are pleased to announce the release of Ruby 3.0.0.