mccullocht commented on PR #15272:
URL: https://github.com/apache/lucene/pull/15272#issuecomment-3367476078

   I tried adding a ByteVectorLoader implementation that stores both possible 
representations and switches between them in the loop (think `if (segment != 
null) { <segment stuff> } else { <array stuff> }`. This was not successful.
   
   With pollution:
   ```
   Benchmark                                     (size)   Mode  Cnt   Score   
Error   Units
   VectorScorerBenchmark.binaryDotProductMemSeg    1024  thrpt   15  25.176 ± 
2.890  ops/us
   ```
   
   Without pollution:
   ```
   Benchmark                                     (size)   Mode  Cnt   Score   
Error   Units
   VectorScorerBenchmark.binaryDotProductMemSeg    1024  thrpt   15  32.198 ± 
0.077  ops/us
   ```
   
   With union vector representation:
   ```
   Benchmark                                     (size)   Mode  Cnt   Score   
Error   Units
   VectorScorerBenchmark.binaryDotProductMemSeg    1024  thrpt   15  28.138 ± 
0.108  ops/us
   ```
   
   I also tried sealing ByteVectorLoader and switching on the class type. On 
most run this is faster than the union vector representation, but on some jvm 
runs it is ~10x slower :/.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to