RFR: JDK-8197594: String#repeat

Roger Riggs Roger.Riggs at Oracle.com
Thu Mar 1 14:11:16 UTC 2018


Hi Jim,

Perhaps premature optimization...

Have you done any JMH tests on the expected string content and sizes.  
The optimization for single 8-bit characters
is good but for short strings like inserting spaces for tab stops, "    
".repeat(5), will suffer the overhead of Arraycopy
for very small/short or non-8-bit strings.   Perhaps use a regular loop 
below some threshold ( limit < 32).
Maybe the intrinsic already handles this efficiently or it is not 
important enough to optimize.

I would not expect to see many very long repeats or long strings being 
repeated.
And I would leave cache-effect optimizations to the implementation of 
Arraycopy.

Thanks, Roger

On 2/28/2018 9:13 PM, Paul Sandoz wrote:
> Hi Jim,
>
> Looks good. I like the power of 2 copying.
>
>
> 2978      * @throws  IllegalArgumentException if the {@code count} is
> 2979      *          negative.
> 2980      */
> 2981     public String repeat(int count) {
>
> Missing @since11 on the method.
>
>
> Like Stuart suggests, turn the explanatory text into an api note, perhaps with a small code sample.
>
> Thanks,
> Paul.
>   
>
>> On Feb 28, 2018, at 8:31 AM, Jim Laskey <james.laskey at oracle.com> wrote:
>>
>> Introduction of a new instance method String::repeat to allow an efficient and concise approach for generating repeated character sequences as strings.
>>
>> Performance information in JBS.
>>
>> Thank you.
>>
>> Cheers,
>>
>> — Jim
>>
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8197594 <https://bugs.openjdk.java.net/browse/JDK-8197594>
>> CSR: https://bugs.openjdk.java.net/browse/JDK-8198296
>> <http://cr.openjdk.java.net/~jlaskey/8197594/String.html>
>> Webrev: http://cr.openjdk.java.net/~jlaskey/8197594/webrev-02/index.html <http://cr.openjdk.java.net/~jlaskey/8197594/webrev-02/index.html>
>> JavaDoc: http://cr.openjdk.java.net/~jlaskey/8197594/String.html <http://cr.openjdk.java.net/~jlaskey/8197594/String.html>
>>
>>
>>



More information about the core-libs-dev mailing list