Ruby exception overhead

I’ve been seeing various bits and pieces mentioning the overhead Ruby’s
(and other languages’) exception handling adds to a program (eg.
comments on
http://rpheath.com/posts/237-raising-custom-exceptions-in-rails, and
http://www.rubyflow.com/items/3260).

Is that overhead incurred even if the exception is not raised? That is;
the negatives are only felt if the exception is raised, and so should
not be used for normal program flow control, or is it better to avoid
begin…rescue…end blocks wherever possible (if trying to improve your
performance)?

Thanks.

That’s the wrong approach to improving performance. Measure first, then
change. In most cases the real bottleneck is not where you expected it
to be.

If you have a begin…rescue…end block inside a very tight loop
executed thousands of times then maybe it would be worth removing it -
but on the other hand, if you end up replacing it with more if… tests
and method calls, then you could end up making it slower anyway.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs