From 025216eb130aed83a7a7757b6b9aa2119839adb7 Mon Sep 17 00:00:00 2001 From: Michael Marshall Date: Fri, 27 Feb 2026 13:59:55 -0600 Subject: [PATCH] Avoid lambda allocation in AtomicInteger max update in MutablePQVectors --- .../github/jbellis/jvector/quantization/MutablePQVectors.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jvector-base/src/main/java/io/github/jbellis/jvector/quantization/MutablePQVectors.java b/jvector-base/src/main/java/io/github/jbellis/jvector/quantization/MutablePQVectors.java index b47d2b9ce..41bec7075 100644 --- a/jvector-base/src/main/java/io/github/jbellis/jvector/quantization/MutablePQVectors.java +++ b/jvector-base/src/main/java/io/github/jbellis/jvector/quantization/MutablePQVectors.java @@ -53,7 +53,7 @@ public MutablePQVectors(ProductQuantization pq) { public void encodeAndSet(int ordinal, VectorFloat vector) { ensureChunkCapacity(ordinal); // increase count first so get() works - vectorCount.updateAndGet(current -> max(current, ordinal + 1)); + vectorCount.accumulateAndGet(ordinal + 1, Math::max); pq.encodeTo(vector, get(ordinal)); } @@ -61,7 +61,7 @@ public void encodeAndSet(int ordinal, VectorFloat vector) { public void setZero(int ordinal) { ensureChunkCapacity(ordinal); // increase count first so get() works - vectorCount.updateAndGet(current -> max(current, ordinal + 1)); + vectorCount.accumulateAndGet(ordinal + 1, Math::max); get(ordinal).zero(); }