On Sun, 9 Apr 2023 02:28:37 GMT, Tingjun Yuan <d...@openjdk.org> wrote:

>> In the current implementation of `String.join(CharSequence, Iterable)`, the 
>> temp array `elems` is always initialized with a length of 8. It will cause 
>> many array recreations when the `Iterable` contains more than 8 elements. 
>> Furthermore, it's very common that an `Iterable` is also a `Collection`. So 
>> if the `Iterable` is an instance of `Collection`, the initial length of the 
>> array can be `((Collection<?>)elements).size()`. It will not change the 
>> current behavior even if the `Collection` is modified asynchronously.
>> 
>> I don't know whether this change requires a CSR request.
>
> Tingjun Yuan has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Add benchmark

In conclusion, I just don't want to make this change much complicated. So I 
decide to use `spliterator().estimateSize()` and later benchmark it.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13383#issuecomment-1501420066

Reply via email to