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

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,265
Latest member
TodLarocca

Latest Threads

Top