cost of Java "assert" when disabled?
John Rose
john.r.rose at oracle.com
Thu Feb 16 14:14:48 PST 2012
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/d3039070/attachment.html
More information about the hotspot-dev
mailing list