tprintezis at twitter.com
Tue Nov 21 20:15:44 UTC 2017
I’ve been looking at the safepoint behavior of one of our services and I
noticed that around 55% of the safepoints that happen don’t execute a VM
operation. I’d need to confirm this, but I assume they only happen in order
to do some cleanup (SafepointSynchronize::is_cleanup_needed() returns true,
which in JDK 8 translates to !InlineCacheBuffer::is_empty()).
I’m not familiar with the InlineCacheBuffer at all. How important is it to
execute InlineCacheBuffer::update_inline_caches() at regular intervals?
Would a modified heuristic, like "a safepoint is required if the buffer is
>P% full" (maybe in conjunction with increasing the buffer size) be
reasonable? Or maybe increase the value of GuaranteedSafepointInterval? Or
Note that the overhead of the non-VM op safepoints is actually negligible.
I’d just like to try to cut down the number of safepoints we do, as we had
issues in the past with safepoint initiation taking too long.
Tony Printezis | @TonyPrintezis | tprintezis at twitter.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the hotspot-compiler-dev