This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cost of having try-catch statements?


Harald Niesche writes:
 > Andrew Haley wrote:
 > 
 > > Martin Egholm Nielsen writes:
 > >  > >  > I was wondering: Is there any significant cost in having "unused" 
 > >  > >  > try-catches in my code?
 > >  > >  > That is, I have a method that 99.99% of the times invoked never throws a 
 > >  > >  > given exception. However, in case it does, I need to log it...
 > >  > > The only cost is the unwinder tables, (which are not read into memory
 > >  > > unless your exception is thrown) and the handler itself, which may
 > >  > > cause some instruction cache presure.
 > >  > So practically no overhead?
 > > 
 > > That's the idea.  Really, if there is any significant overhead for an
 > > unused handler that would be a bug.
 > 
 > Being curious, I tried a micro benchmark (Main.java, attached).
 > 
 > The code just calls a method on an instance of class Main that then 
 > proceeds to call another method (that will never throw an exception, it 
 > simply increments a member to be not completely empty). In the first 
 > case there is nothing happening besides the second function being 
 > called, in the second case I have wrapped a try/catch around the call.
 > 
 > 
 > Harald
 > PS: I ran this on a 1GHz Centrino Notebook with 512mb Ram, CPU speed 
 > locked at 1GHz

Ah yes, Windows still uses longjmp.

Similar hardware, Linux:

without try/catch 207ms
with try/catch 227ms
without try/catch 202ms
with try/catch 209ms

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]