Peter Szinek
2006-Apr-24 07:06 UTC
[Rails] Yet another ''how to sell Rails'' (performance related) question -
Hi all, I have already evangelized my management to use Rails instead of a Java framework for a newly starting projects - they are OK with Ruby, Rails, seems i won the ''will it scale?'' round too, however there is one final round: performance. These guys are really hooked on numbers. (I know, i know, i have been reading DHH''s thoughts on this topic (in short: who cares), i know that there are lies, bigger lies and benchmarks etc. - you do not have to convince me about this, but i have to sell Rails if i don''t want to be pushed into yet-another java project). So, they say they are interested in the average time a request is displayed. The test scenario is something like you have a DB of one (or two) bazillion records, you want to display them on a page (n items/page), and if the average time needed for this (/element) is drastically slower in Rails they are not going for it. Any ideas how to demo/sell this? I know that Rails will be slower, but still what should i do to push this trough? Thanks, Peter
Tom Mornini
2006-Apr-24 07:34 UTC
[Rails] Yet another ''how to sell Rails'' (performance related) question -
On Apr 24, 2006, at 12:06 AM, Peter Szinek wrote:> I have already evangelized my management to use Rails instead of a > Java framework for a newly starting projects - they are OK with > Ruby, Rails, seems i won the ''will it scale?'' round too, however > there is one final round: performance.Scaling is related to performance, so it seems you won''t have too much of a problem.> These guys are really hooked on numbers. (I know, i know, i have > been reading DHH''s thoughts on this topic (in short: who cares), i > know that there are lies, bigger lies and benchmarks etc. - you do > not have to convince me about this, but i have to sell Rails if i > don''t want to be pushed into yet-another java project). > > So, they say they are interested in the average time a request is > displayed. The test scenario is something like you have a DB of one > (or two) bazillion records, you want to display them on a page (n > items/page), and if the average time needed for this (/element) is > drastically slower in Rails they are not going for it. Any ideas > how to demo/sell this? I know that Rails will be slower, but still > what should i do to push this trough?Ah, I see, they''re concerned about serial performance. The reality is that this is likely more dependent on the client- >server->client latency then Rails. It would take a fantastically poorly written app for the Ruby and Rails computational overhead to take a significant portion of net latency. While I''m sure you''re right that Rails will be slower, the difference attributed to Rails will be infinitesimal compared to net latency. Total number of records is a concern for the DB, not Rails itself, unless you plan to render all bazillion records on the same page. Do you have access to a DB with one (or two) bazillian records in it? If you don''t have a DB, write a random populator and create a bazillion records. Then, create an app, make a scaffold, hack in a search action, an do some timings. Make sure to time it in production mode. -- -- Tom Mornini