Live data from Hacker News

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

weblog.rubyonrails.org

1–10 of 27 posts

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#2
Rails needs to do a release solely focused on speed. Dropping 1.8.7 is a good step for a lot of people, but I feel Rails itself has gotten slower since 2.x and I know a lot of people would agree with me.

I do a lot of work in CodeIgniter as well as Rails (w/ Ruby 1.9.2 in production), and there's no doubt that my CodeIgniter apps on slower servers with little-to-no deliberate optimization are faster than my Rails apps.

For just one particular example, I have found rendering partials in Rails are such a point of poor performance that I have often found myself avoiding it.

There's this red herring (and a pet peeve) that making the framework 'less bloated' by dropping components or making them optional equals performance. You'll even see a comment on this blog post asking which components to remove to improve performance! It doesn't work that way when the core components of Rails remain slow.

While the speed of Rails had Ruby 1.8.7 to blame for a long time, now that it's being dropped I think 4.0 has a unique opportunity to optimize for 1.9 and make a big difference to the overall speed of the framework.

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#4
post #2

Rails needs to do a release solely focused on speed. Dropping 1.8.7 is a good step for a lot of people, but I feel Rails itself has gotten slower since 2.x and I know a lot of people would agree with me. I do a lot of work in CodeIgniter as well as Rails (w/ Ruby 1.9.2 in production), and there's no doubt that my CodeIgniter apps on slower servers with little-to-no deliberate optimization are faster than my Rails app…

When using ree, the time to load an empty rails app is half that of ruby 1.9.3 (for both 3.0.x and 3.2 rails versions) https://img.skitch.com/20111206-xt99xy9m5wsejknn4dnxng1g9m.j...

I haven't compared performance of an application in ree versus 1.9.3 but I have seen reports that 1.9.3 is slower than ree for many apps.

So rails dropping support for 1.8.7 is a bit worrying for me.

Btw ruby 1.9.2 had a huge performance regression related to loading files which made rails apps very slow. This has been fixed in 1.9.3. So you are better off using 1.9.3 if you want to use ruby 1.9.x

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#5
post #3

Thank goodness for RVM. Can't imagine what I would do without it...

There's also rbenv, which doesn't override your shell functions or require modifications to your deployment code. Patching basic shell functions like "cd". In 2011. I seriously hope you guys don't do this.

Here's the rbenv project page: https://github.com/sstephenson/rbenv#readme

It's functionally equivalent to rvm minus the aforementioned negatives.

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#6
post #2

Rails needs to do a release solely focused on speed. Dropping 1.8.7 is a good step for a lot of people, but I feel Rails itself has gotten slower since 2.x and I know a lot of people would agree with me. I do a lot of work in CodeIgniter as well as Rails (w/ Ruby 1.9.2 in production), and there's no doubt that my CodeIgniter apps on slower servers with little-to-no deliberate optimization are faster than my Rails app…

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): http://www.youtube.com/watch?v=kWOAHIpmLAI

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#7
post #2

Rails needs to do a release solely focused on speed. Dropping 1.8.7 is a good step for a lot of people, but I feel Rails itself has gotten slower since 2.x and I know a lot of people would agree with me. I do a lot of work in CodeIgniter as well as Rails (w/ Ruby 1.9.2 in production), and there's no doubt that my CodeIgniter apps on slower servers with little-to-no deliberate optimization are faster than my Rails app…

> For just one particular example, I have found rendering partials in Rails are such a point of poor performance that I have often found myself avoiding it.

A good caching plan obviously helps with these kinds of issues.

> There's this red herring (and a pet peeve) that making the framework 'less bloated' by dropping components or making them optional equals performance.

In the case of Controllers, inheriting from ActionController::Metal and not including unnecessary modules, speeds things up a lot.

In general Rails may be slow in comparison to other frameworks. But that doesn't mean it's too slow. I don't really care if my app only manages 5000 requests per second, versus framework x's 6000 or more on the same hardware.

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#9
post #5
post #3

Thank goodness for RVM. Can't imagine what I would do without it...

There's also rbenv, which doesn't override your shell functions or require modifications to your deployment code. Patching basic shell functions like "cd". In 2011. I seriously hope you guys don't do this. Here's the rbenv project page: https://github.com/sstephenson/rbenv#readme It's functionally equivalent to rvm minus the aforementioned negatives.

Except it does not handle neither installation (available via ruby-build), nor gemsets (has a plugin).

Re: Rails master is now 4.0.0.beta; Ruby 1.8.7 support dropped

#10
post #2

Rails needs to do a release solely focused on speed. Dropping 1.8.7 is a good step for a lot of people, but I feel Rails itself has gotten slower since 2.x and I know a lot of people would agree with me. I do a lot of work in CodeIgniter as well as Rails (w/ Ruby 1.9.2 in production), and there's no doubt that my CodeIgniter apps on slower servers with little-to-no deliberate optimization are faster than my Rails app…

When using ree, the time to load an empty rails app is half that of ruby 1.9.3 (for both 3.0.x and 3.2 rails versions) https://img.skitch.com/20111206-xt99xy9m5wsejknn4dnxng1g9m.j... I haven't compared performance of an application in ree versus 1.9.3 but I have seen reports that 1.9.3 is slower than ree for many apps. So rails dropping support for 1.8.7 is a bit worrying for me. Btw ruby 1.9.2 had a huge performance…

On a pretty large rails app, we switched to 1.9.2 about a year ago. Startup time for our app is much, much worse than it was under ree, but our average response time significantly improved -- we saw close to a 50% drop in the time spent in ruby code across nearly all requests. I wouldn't use slow startup time as a reason to avoid benchmarking your app in production mode against 1.9.x, since it could result in a huge perf boost across the whole app.
Post reply on HN