cost of Java "assert" when disabled?

Vitaly Davidovich vitalyd at gmail.com
Thu Feb 16 14:21:56 PST 2012


Don't want to sidetrack this thread but I really wish javac had proper
conditional compilation support, which would make this issue mostly moot.

Sent from my phone
On Feb 16, 2012 5:14 PM, "John Rose" <john.r.rose at oracle.com> wrote:

> On Feb 16, 2012, at 1:59 PM, Vitaly Davidovich wrote:
>
> I think one problem with them is that they count towards the inlining
> budget since their bytecodes still take up space.  Not sure if newer C1/C2
> compiler builds are "smarter" about this nowadays.
>
>
> Optimized object code has (probably) no trace of the assertions
> themselves, but as Vitaly said, they perturb the inlining budget.  Larger
> methods have a tendency to "discourage" the inliner from inlining, causing
> more out-of-line calls and a rough net slowdown.  Currently, the
> non-executed bytecodes for assertions (which can be arbitrarily complex)
> make methods look bigger than they really are.  This is (IMO) a bug in the
> inlining heuristics, which should be fixed by examining inlining candidates
> with a little more care.  Since the escape analysis does a similar method
> summarization, there isn't necessarily even a need for an extra pass over
> the methods.
>
> -- John
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-dev/attachments/20120216/e62f9131/attachment.html 


More information about the hotspot-dev mailing list