Cost of having try-catch statements?
Reshat Sabiq
sabiq@csociety.ecn.purdue.edu
Mon Aug 23 23:14:00 GMT 2004
OK, i think i just got onto the same page with this thread. The cost in
1.3.1_05 is negligible (similar to Linux, even smaller). The cost in 1.4.2
and 1.5.0, however, is not negligible.
Now i conclude that it is best to avoid try-catch if possible, for
genericness sake. I will have to provide some logic for this in my case,
to save the .12-.18 seconds in the long term.
It is suprising, however, that the cost on Linux is so small, w/ no
try-catch case being around 200ms. What was the hardware on that test? I
would shout out Linux rules if this metric goes down dramatically (to
50-60ms) on good hardware. Will try to test myself later...
This is the table i got (2000 only has 1.3.1 values):
Try-Catch XP Plain XP
2000 1.3.1_05 1.4.2_04 1.5.0 2000 1.3.1_05 1.4.2_04 1.5.0
297 230 231 180 266 210 60 60
296 220 240 171 266 221 50 50
282 231 230 170 281 210 60 60
297 220 241 171 281 220 50 60
297 230 231 180 266 210 50 60
297 220 230 170 265 221 60 50
297 230 230 180 266 211 50 60
328 221 241 171 281 220 60 50
297 230 231 180 266 211 50 60
297 221 230 180 265 250 60 50
281 231 230 170 281 210 50 60
296 220 231 170 282 220 60 51
282 230 240 180 281 210 50 60
312 220 241 180 281 221 50 50
282 220 240 170 281 210 50 60
328 220 241 180 281 251 50 51
281 220 230 170 282 211 51 70
328 220 230 170 281 220 60 60
297 221 240 171 265 210 50 60
281 220 230 170 266 220 50 60
5953 4475 4688 3484 5484 4367 1071 1142
1.085521517 1.024730937 4.377217554 3.050788091
297.65 223.75 234.4 174.2
Thanks,
<rsa/>
On Mon, 23 Aug 2004, Reshat Sabiq wrote:
> > Eh. Maybe my mind is going, but I thought I'd seen a patch to unwind
> > over Windows callbacks.
>
> > Andrew.
>
> This was my question for the past couple of days as well. While i'm not
> versed in the machine language instructions involved, i expected the
> overhead to be minimal, just by thinking how i would implement exception
> handling.
> I would like to ask what platform was the 4-5 times overhead seen on in
> Windows? I just tried the same Main class mentioned by Harald on both
> Windows 2000 and Windows XP using SDK 1.3.1_05. After averaging 10
> executions, the overhead i've seen on 2000 is 8.55%, and on XP it is
> 2.47%. If we considered a method with millions or billions of instructions
> inside, the overhead would be totally miniscule.
> The times i'm getting w/ try-catch are 297.65ms on 2000, and 223.75ms on
> XP.
>
> In general, based on this simple test and the common sense, i'm concluding
> that it is safe to assume that try-catch w/o the exception thrown has
> negligible overhead. While i'm cognizant of GCC builds for Windows from
> MinGW mentioned by Ranjit, that doesn't appeat to apply in most other
> applicable cases, such as when using the regular Sun JVMs and bye-code.
>
> Thanks,
> <rsa/>
>
>
More information about the Java
mailing list