Ruby exception overhead

D

Duke Halak

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

Brian Candler

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,430
Messages
2,571,676
Members
48,796
Latest member
Greg L.

Latest Threads

Top