Hi,

by folding a constant prepend followed by an argument prepend into a
single prepender with the constant bound in, we significantly reduce
the amount of possible MH shapes that the String concat bootstrap
method can generate by sharing the stem of the combinator tree
between similar concatenations like '"foo" + obj + obj' and
'obj + "foo" + obj'.

See bug for details and the outline of a proof that this turns an
exponential growth factor into a constant one.

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

Testing: tier1-3, verified retained throughput performance in
microbenchmarks, verified significant startup and footprint improvements
for both realistic and synthetically complex combinations of argument
shapes.

Thanks!

/Claes

Reply via email to