any impact on performance from javac's debug option ?

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Mon Aug 4 10:42:43 PDT 2008

I looked into this a while back and the only code generation  
difference with -g is that locals which are declared as final  
constants actually get code emitted for them.  Without -g things like  
"final int i = 4;" act pretty much like defines so that every use of i  
is simply replaced with 4.  With -g a local is actually allocated and  
initialized though otherwise the code is the same.  In general this  
won't have any effect on the code either c1 or c2 emit but it does  
slightly increase the size of the bytecodes.  Since both c1 and c2 use  
bytecode size as a metric for inlining decisions it could cause a  
method not to be inlined.  C1 is probably more sensitive to this since  
it has no profile feedback in it's inlining decisions.  That's the  
only difference I'm aware of.


On Aug 2, 2008, at 8:31 AM, Ulf Zibis wrote:

> Hi,
> does javac's debug option have any impact on the performance of the  
> code ?
> I can't see any difference after some loops, but is there a difference
> principally ?
> Regards,
> Ulf

More information about the hotspot-dev mailing list