msokolov commented on PR #13872: URL: https://github.com/apache/lucene/pull/13872#issuecomment-2462152791
Finally got back to this and fixed the aliasing that was happening. I ran some perf tests and don't see significant variance. Still, it's clear we must be doing a lot more allocations here during indexing; I plan to look at profiler output to see that. But maybe it's captured by escape analysis and we're able to re-use? I was thinking a possible solution to that could be to maintain a pool of Scorers in each ScorerSupplier and reclaim them with a close()? But maybe that can come as a follow up. ## this patch ``` recall latency (ms) nDoc topK fanout maxConn beamWidth quantized index s force merge s num segments index size (MB) 0.965 2.995 1000000 10 64 64 250 no 1795.97 1329.54 1 3018.62 0.878 2.844 1000000 10 64 64 250 7 bits 1715.70 1202.92 1 3749.72 0.541 2.084 1000000 10 64 64 250 4 bits 1650.77 842.20 1 3764.59 ``` ## mainline, Cohere, mip, 1M docs ``` recall latency (ms) nDoc topK fanout maxConn beamWidth quantized index s force merge s num segments index size (MB) 0.965 3.161 1000000 10 64 64 250 no 1813.15 1277.61 1 3018.62 0.878 2.775 1000000 10 64 64 250 7 bits 1681.21 1168.95 1 3749.72 0.541 2.092 1000000 10 64 64 250 4 bits 1646.78 802.31 1 3764.59 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org