JDK-8301958 reduced overhead of Arrays.copyOf/-Range methods, but introduced a few small methods that we @ForceInline for performance. A side-effect of a slight increase in JIT compilations has been seen, which show up as a footprint regression in some configurations (see
JDK-8304651).
Simplifying the patch in
JDK-8301958 by removing auxiliary methods is performance neutral on microbenchmarks (still a 1.20-1.25x speed-up on micros targetting new String(byte[])), an reduce the number of JIT compilations during bootstrap. While it's unclear if it resolves the regression in the fragile internal footprint benchmark where we've seen some alarms being raised (
JDK-8304651) it seems prudent to simplify as much as possible.