Yet another 'how to sell Rails' (performance related) questi

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

On Apr 24, 2006, at 12:06 AM, Peter S. 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.

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