Relates :
|
Beginning with JDK-8079555 the desired PLAB size for use during GC is calculated as a "net" size, i.e. without taking the number of threads into account. This results in way too small PLAB sizes particularly on large machines, because that net value is later divided by the number of threads, because that net size is clipped to the max value at calculation time. So instead of allowing the max value on a per-thread basis, we only allow the max value on a global basis. This results in significant performance reduction due to extremely frequent use of direct allocation instead of PLABs on machines with many threads. The fix is to do the clipping calculation when handing out the buffers, not before.