On Wed, 14 May 2025 19:37:37 GMT, Archie Cobbs <aco...@openjdk.org> wrote:

> Please review this small performance tweak `ArrayDeque`.
> 
> `ArrayDeque` has an invariant in which any unused elements in the array must 
> be null. In a couple of places, the code is setting contiguous ranges of 
> elements to null using `for()` loops. This can be both simplified and sped up 
> by using `Arrays.fill()` instead.

I added a benchmark to the PR (hopefully I did that right).

It shows a _decrease_ in performance. I have no idea why. I did this on my 
laptop so who knows, but if the effect is real then it kind of raises a lot of 
larger questions.

jdk-25+22-94-g0318e49500e (master):
Benchmark                                       Mode  Cnt   Score   Error  Units
ArrayDeque.ClearBenchmarkTestJMH.fillAndClear  thrpt   50  37.064 ± 0.225  ops/s

jdk-25+22-95-g84fb0903be0 (JDK-8356993):
Benchmark                                       Mode  Cnt   Score   Error  Units
ArrayDeque.ClearBenchmarkTestJMH.fillAndClear  thrpt   50  35.528 ± 0.180  ops/s

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

PR Comment: https://git.openjdk.org/jdk/pull/25237#issuecomment-2884609647

Reply via email to