How much faster is current Ruby than Ruby 2.0 for a production web application? Let's look at a mixed workload in the real, production Discourse forum software. We'll see how the speed has changed overall. We'll also examine slow requests, garbage collection, warmup iterations and more. You'll see how to use this benchmark to test your own Ruby optimizations.
This talk will show how close we are to Ruby 3x3 (3 times speedup) for a representative production Rails application (Discourse.) Much of the data has already appeared in blog posts on appfolio-engineering.squarespace.com.
By November, these benchmarks should be available on Ruby Bench. I'll mention how listeners can check the same benchmarks for themselves on rubybench.org. This will also allow the core team to see regressions. Marko Bogdanovic is also working on this for the Google Summer of Code Ruby project.
The audience can be beginners in Ruby, as long as they can follow graphs and statistics. A more advanced audience can use the same code to verify the results or answer their own Ruby performance questions.
The early data has been featured in four different blog posts that made it into Ruby News. The methods and benchmark have been checked by folks like Richard Schneeman, Nate Berkopec and Matt Gaudet. There's also more data that's not yet published, so this isn't just the blog posts.
And of course, measuring performance is very important for Ruby 3x3. Rails apps are an important part of what people perceive as Ruby performance. Discourse is a real, production, open-source Rails application - Discourse is our best answer to "what is a real-world production Rails application?"
So this talk gives our best answer to "how close are we to Ruby 3x3 on a real-world production Rails app? How will we know when we're done?"
Noah works on Ruby for AppFolio, working on Ruby performance and related tooling. He wrote the book "Rebuilding Rails" about understanding Rails as "really just Ruby."