RFR [8011215] optimization of CopyOnWriteArrayList.addIfAbsent()

Martin Buchholz martinrb at google.com
Tue Apr 2 22:47:54 UTC 2013


On Tue, Apr 2, 2013 at 3:45 PM, Ivan Gerasimov <ivan.gerasimov at oracle.com>wrote:

> Thank you, Ulf!
>
>
>  maybe the old code wins for looong arrays, so there could be a threshold
>> to decide between old and new code:
>>
>
> I've modified the benchmark code to test arrays with 90'000 to 100'000
> elements. (Previously was testing 1 to 100 elements.)
> The performance gain turns out to be even more significant.
> On my machine tests show that with that many elements the new code runs
> 40% faster.
>
> Honestly, I didn't expect that. I thought my code might be a bit slower
> and hoped that not much slower.
>

Yeah, that's a bit surprising.  Perhaps because you're avoiding the branch
of testing object for null on each iteration?



More information about the core-libs-dev mailing list