This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: exceptions and threads---a survival tactic!
- To: branko dot cibej at hermes dot si (Branko Cibej)
- Subject: Re: exceptions and threads---a survival tactic!
- From: Joe Buck <jbuck at synopsys dot com>
- Date: Thu, 12 Mar 98 7:53:16 PST
- Cc: kaz at cafe dot net, egcs at cygnus dot com
Kaz Kylheku wrote:
> > The potential bottleneck should not be a worry since
> > in well designed programs (IMHO), exception handling is
> > an infrequent occurence for, well, ``exceptional'' events.
Branko Cibej writes:
> You should look at some of the discussions in the comp.lang.c++.moderated
> archive :-) You'll find that opinions about that vary widely.
>
> The fact is, with properly implemented exception-handling code that *does*
> care about runtime overhead, you can write much faster code by using EH for
> flow control than by the traditional "if (foo) bar(); else baz();" method.
Yes, and this can be even more true in Java. The March '98 issue of Byte
has a piece by David Orchard entitled "Better Performance With Exceptions
in Java". He finds that, for very large arrays,
try {
for (int i = 0; ; i++) {
anInt[i] = i;
}
}
catch (ArrayIndexOutOfBoundsException e) {}
is 30-40% faster on JDK 1.1.3 (Sun's Windows version) than the traditional
for (int i = 0; i < ARRAY_SIZE; i++) {
anInt[i] = i;
}
(I suspect, though, that this is because there is a range check on each
array access in Java, so the traditional code does the same test twice).