RFR: 8239235: Examine SignatureStream performance after consolidation

Claes Redestad claes.redestad at oracle.com
Thu Feb 20 17:53:38 UTC 2020


Hi,

JDK-8230199 reduced some of the work related to signature parsing, but
also caused a small increase in branches and branch-misses on select
startup tests.

This patch addresses this by means of more aggressive inlining and
a few simplifications and optimizations, adding up to a small reduction
of retired instructions, branches and branch misses on various tests.
Every metric now seems as good as or better than the pre-JDK-8230199
baseline.

Even with more aggressive inlining the net result on static binary size
is perhaps surprisingly a slight positive (-4kb - linux x64).

I also found a subtle bug in SignatureStream::find_symbol where we would
drop/leak the initial, non-permanent Symbol in a signature if it was
followed by a permanent one. I discussed whether we should break this
out into a separate bug with Lois, but decided to not break it out. I've
added a regression gtest for this particular issue, though.

Bug:    https://bugs.openjdk.java.net/browse/JDK-8239235
Webrev: http://cr.openjdk.java.net/~redestad/8239235/open.00/

Testing: tier1-2 (did tier1-4 on a previous version along with other
patches)

/Claes

[1] https://bugs.openjdk.java.net/browse/JDK-8230199


More information about the hotspot-runtime-dev mailing list