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]