Skip to content
0:00 / 0:00

#rails#rack#rubyonrails

RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"

O'Reilly

202K subscribers • 24 videos on Hallway

YouTube
  • Recommended by 1 person: 1 on Hacker News.
  • Presented by Aaron Patterson, Ruby and Rails core committer
  • May be out of date. The tools, versions or practices it shows have likely moved on.

Intermediate. Assumes working knowledge.

25K views15 years ago1 recommendation

Programming languagesWeb developmentRubyWeb performanceAPI design

Aaron Patterson explains how deep Rack middleware stacks slow down Rails and proposes a shallower pipeline to improve performance.

RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"

Why it's here

1 person recommends this

What people say. Engineers recommend this talk for its clear explanation of how deep stack depths and garbage collection impact Rails performance.

maercsratson Hacker News • Recommends

On “Rails 3.1.0 to be released on 22nd August”

…ic every request requires you going through that pipeline and back again. His solution is to break up the pipeline into 3 separate types: generators, filters (for response data), and lifecycle hooks. Doing this brought the speed back up to rails 2.3 speeds and a bit faster in some instances. But those were early numbers. You can see his talk here: link to this video The interesting stuff happens around the 20 min. mark. Overall, there are a lot of people who want to make ruby better and faster. Rubinius, Jruby and MacRuby are all examples. There are also people who want to make Rails faster. They are examining the slower parts (active record, rack, etc) and working to make it better.…

mdasenon Hacker News • Mentions

On “Ask HN: Where is the Django community?”

I don't want to be defending the OP's position, but. . . settings.py is a mess. Even Simon's written a post bashing it ( link ). I cringe a little starting up a project and having to dive into the settings.py file. In some ways, Django tries to be flexible, but it's clumsy. For example, you can have your templates in your app directories. So, you have /path/to/project/posts/templates and /path/to/project/people/templates. However, you can't just put your templates in there because Django doesn't namespace them. Like, if I do {% extends "people/base.html" %} it will look in both those template directories for a people folder. It won't be like, "oh, I should look in /path/to/project/people/t…

getsaton Hacker News • Mentions

On “CoderTalk - Episode 5. Has Rails Lost It's Rails? Slow Rails Test, etc.”

In Aaron Patterson's recent "Double Dream Hands: So Intense!" presentation0, he came to the conclusion that Rails 3's slowness is because MRI sucks at GC on a deep stack depth. The average stack depth of Rails 3 applications is ENORMOUS. He mentions in the video that he rewrote the Rack API to pass a mutated var to the next piece of middleware in the Rack chain instead of calling the next middleware and passing an env var to it. The gains were pretty impressive. Hopefully, they make this change to the Rack API for Rails 3.2. That change + the 1.9.3 fix for requiring files1 should result in much faster overall Rails performance. 0 link to this video 1 link

getsaton Hacker News • Mentions

On “Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped”

As the number of Rack middleware pieces in a base Rails app grows, it gets slower. MRI and YARV spend a lot more time doing GC as the stack depth grows. Aaron Patterson mentioned that he was working on a modification to the Rack API where each piece of middleware did not call the next piece, reducing the stack depth and drastically improving the runtime performance of Rails apps. Here's the video where he talks about it (towards the beginning): link to this video

jonsmockon Hacker News • Mentions

On “Why your web framework should not adopt Rack API”

Nice article, Jose! For those interested, Aaron Patterson (tenderlove) talks about this in his RailsConf talk, starting at 26:45. link to this video