(index) Experimental ranking signals

This commit is contained in:
Viktor Lofgren 2024-08-03 10:32:46 +02:00
parent c6c8b059bf
commit eba2844361

View File

@ -1,5 +1,7 @@
package nu.marginalia.bench;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import nu.marginalia.sequence.GammaCodedSequence;
import nu.marginalia.sequence.VarintCodedSequence;
import org.openjdk.jmh.annotations.*;
@ -12,27 +14,44 @@ public class SequenceBenchmarks {
public static class SequenceState {
VarintCodedSequence vcs;
GammaCodedSequence gcs;
IntList list;
ByteBuffer workArea;
int[] arrayValues;
int[] valueBuffer;
public SequenceState()
{
valueBuffer = new int[128];
workArea = ByteBuffer.allocate(65536);
arrayValues = new int[] { 1, 3, 5, 16, 1024, 2048, 4096, 4098, 4100 };
list = new IntArrayList(arrayValues);
vcs = VarintCodedSequence.generate(1, 3, 5, 16, 1024, 2048);
gcs = GammaCodedSequence.generate(workArea, 1, 3, 5, 16, 1024, 2048);
}
}
// @Fork(value = 5, warmups = 5)
// @Warmup(iterations = 5)
// @Benchmark
// @BenchmarkMode(Mode.Throughput)
// public int vcsDecode(SequenceState state) {
// var iter = state.vcs.iterator();
// int sum = 0;
// while (iter.hasNext()) {
// sum += iter.nextInt();
// }
// return sum;
// }
@Fork(value = 5, warmups = 5)
@Warmup(iterations = 5)
@Benchmark
@BenchmarkMode(Mode.Throughput)
public int vcsDecode(SequenceState state) {
var iter = state.vcs.iterator();
public int listDecode2(SequenceState state) {
var list = state.arrayValues;
int sum = 0;
while (iter.hasNext()) {
sum += iter.nextInt();
for (int i = 0; i < list.length; i++) {
sum += list[i];
}
return sum;
}