RFR(XXS): 8189244: x86: eliminate frame::adjust_unextended_sp() overhead

Claes Redestad claes.redestad at oracle.com
Fri Oct 13 12:08:19 UTC 2017


Hi Dean,

you asked me to do a quick check if this helps Exception/stack walk
performance:

Benchmark                  Mode  Cnt  Score   Error   Units
Throw.throwSyncException  thrpt  100  0.803 ± 0.029  ops/us
Throw.throwSyncException  thrpt  100  0.867 ± 0.028  ops/us   # 8%

... thus a significant improvement!

Startup is improved on some measures (total #instructions down 500k,
significant) but not enough to be statistically significant on wall clock
measures.

/Claes

On 2017-10-12 21:46, dean.long at oracle.com wrote:
>
> https://bugs.openjdk.java.net/browse/JDK-8189244
>
> http://cr.openjdk.java.net/~dlong/8189244/webrev
>
> The work that frame::adjust_unextended_sp() does is DEBUG_ONLY, but 
> the compiler cannot completely eliminate the code because of the 
> virtual call to is_compiled() that could have side-effects. We can fix 
> the problem by wrapping the whole thing in #ifdef ASSERT.
>
> This change reduces the size of libjvm.so by almost 2K, and the size 
> of frame::sender() by 8%.
>
> dl

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20171013/43457ca7/attachment.html>


More information about the hotspot-compiler-dev mailing list