From 028b5a4f0dff037a2bf2838427e3f2b370d60bf4 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Sun, 24 Sep 2023 12:12:08 +0200 Subject: [PATCH] (minor performance) Reduce GC churn in index --- .../main/java/nu/marginalia/index/svc/IndexQueryService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java b/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java index fee480bc..8b42bbd2 100644 --- a/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java +++ b/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java @@ -159,8 +159,11 @@ public class IndexQueryService { *
* Then the results are combined. * */ + private final ThreadLocal resultsArrayListPool = ThreadLocal.withInitial(TLongArrayList::new); private TLongList evaluateSubqueries(SearchParameters params) { - final TLongArrayList results = new TLongArrayList(params.fetchSize); + final TLongArrayList results = resultsArrayListPool.get(); + results.resetQuick(); + results.ensureCapacity(params.fetchSize); // These queries are various term combinations for (var subquery : params.subqueries) {