Live data from Hacker News

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

weblog.rubyonrails.org

11–20 of 27 posts

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

#11
post #5

Earlier quoted context omitted.

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).

Yeah, the plugin architecture is cool. There's one for bundler, too: https://github.com/carsomyr/rbenv-bundler

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

#12
post #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…

I think part of the problem is that rails isn't really RESTful. Here is a good talk about it: http://confreaks.net/videos/699-rubyconf2011-resources-for-r...

Dropping the rails router, controllers and rack in favor of something like webmachine and resources could potentially speed up rails and reduce the conceptual complexity as well as the stack depth.

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

#13
post #5

Earlier quoted context omitted.

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).

Who needs gemsets? Isn't that the point of Bundler?

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

#14
post #5

Earlier quoted context omitted.

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).

And rbenv doesn't nest. If your Ruby program execs another Ruby program, rbenv won't use the correct interpreter.

https://github.com/sstephenson/rbenv/issues/121

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

#15

Earlier quoted context omitted.

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…

There's also a reduction in the memory footprint in switching from ree to 1.9.x. I can't seem to find the article detailing memory usage, but there's a decent difference.

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

#16
post #6

Earlier quoted context omitted.

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…

I think part of the problem is that rails isn't really RESTful. Here is a good talk about it: http://confreaks.net/videos/699-rubyconf2011-resources-for-r... Dropping the rails router, controllers and rack in favor of something like webmachine and resources could potentially speed up rails and reduce the conceptual complexity as well as the stack depth.

Interesting. Thanks for that link.

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

#17

Earlier quoted context omitted.

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

Who needs gemsets? Isn't that the point of Bundler?

Gemsets are still useful. see http://tenderlovemaking.com/2011/11/30/psa-the-number-of-gem...

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

#18
post #6

Earlier quoted context omitted.

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…

I think part of the problem is that rails isn't really RESTful. Here is a good talk about it: http://confreaks.net/videos/699-rubyconf2011-resources-for-r... Dropping the rails router, controllers and rack in favor of something like webmachine and resources could potentially speed up rails and reduce the conceptual complexity as well as the stack depth.

I'm curious, have you looked at http://reneerb.com/? I contend as well that Rails is not well suited to REST. As it stands, I think Renee is about 2x faster than Sinatra.

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

#19

Earlier quoted context omitted.

Who needs gemsets? Isn't that the point of Bundler?

Gemsets are still useful. see http://tenderlovemaking.com/2011/11/30/psa-the-number-of-gem...

Thank you for this, I did not realize it was the case but it definitely makes sense. Back to using gemsets I suppose...

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

#20
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 Ac…

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.

Nitpick: Your numbers are a little off. Rails/REE tops out at around ~300 reqs/sec on a current commodity box (16 cores/16G). This is of course application-dependent and optimization can squeeze it some, but it's a different ballpark.

When you look outside of ruby-land you can indeed find frameworks that will handle your 6000/sec on the same hardware (e.g. twisted, node, some of the evented java-frameworks).

So, depending on what you compare to rails, the difference can easily be an order of magnitude.

Post reply on HN