any impact on performance from javac's debug option ?

Charles Oliver Nutter charles.nutter at sun.com
Mon Aug 4 14:02:39 PDT 2008


John Rose wrote:
> On Aug 4, 2008, at 1:26 PM, Charles Oliver Nutter wrote:
> 
>> I asked because I've seen that too...LogCompilation messages about a 
>> method being too big when that method consisted almost entirely of an 
>> assertion line. Guess I'll have to be more careful about not putting 
>> assertions in the hottest, smallest methods like field accessors, eh?
>>
> 
> The most common cliff to step off of is MaxInlineSize, the size (in 
> bytecodes) beyond which a method is not inlined unless there is strong 
> evidence to the contrary, such as a hot profile.  The number is 
> currently 35.  Adding an assert to a field accessor method should not 
> kick you over that limit, unless the assert has a complex structure.
> 
> Here's a rule of thumb, which should remain valid across a wide range of 
> JVMs:  If a hot method contains cold paths, factor the code on those 
> paths out into a (private) subroutine.  Assert expressions are cold 
> paths, because they are not taken when asserts are disabled.

That's the general approach I've been taking...run LogCompilation, look 
for "too big"s, slice and dice. I hadn't thought of splitting out the 
assertion checks though, so I'll give that a go. Most of our assertion 
checks aren't what I'd call complicated as much as comprehensive, in an 
effort to avoid requiring those checks at all when assertions are off.

- Cahrlie



More information about the hotspot-dev mailing list