RFR: JDK-8197594: String#repeat

Peter Levart peter.levart at gmail.com
Thu Mar 1 11:50:35 UTC 2018


Hi,

On 03/01/2018 03:13 AM, Paul Sandoz wrote:
> Hi Jim,
>
> Looks good. I like the power of 2 copying.

Is this really the fastest way? Say you are doing this:

String s = ... 64 bytes ...

s.repeat(16384);

...the last arraycopy will be copying 512 KiB from one part of memory to 
the other part. It means that the source 512 KiB range will not fit into 
L1 cache. Neither fully into L2 cache.

The fastest way might be to employ power-of-two copying until the range 
reaches L1 caches size / 2 for example (16 K ?) and then use the same 
source range repeatedly as a "stamp" until the rounded end.

What do you think?

Regards, Peter



More information about the core-libs-dev mailing list