abstract class BulkOperation extends java.lang.Object implements PackedInts.Decoder, PackedInts.Encoder
| Modifier and Type | Field and Description |
|---|---|
private static BulkOperation[] |
packedBulkOps |
private static BulkOperation[] |
packedSingleBlockBulkOps |
| Constructor and Description |
|---|
BulkOperation() |
| Modifier and Type | Method and Description |
|---|---|
int |
computeIterations(int valueCount,
int ramBudget)
For every number of bits per value, there is a minimum number of
blocks (b) / values (v) you need to write in order to reach the next block
boundary:
- 16 bits per value -> b=2, v=1
- 24 bits per value -> b=3, v=1
- 50 bits per value -> b=25, v=4
- 63 bits per value -> b=63, v=8
- ...
|
static BulkOperation |
of(PackedInts.Format format,
int bitsPerValue) |
protected int |
writeLong(long block,
byte[] blocks,
int blocksOffset) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitbyteBlockCount, byteValueCount, decode, decode, decode, decode, longBlockCount, longValueCountbyteBlockCount, byteValueCount, encode, encode, encode, encode, longBlockCount, longValueCountprivate static final BulkOperation[] packedBulkOps
private static final BulkOperation[] packedSingleBlockBulkOps
public static BulkOperation of(PackedInts.Format format, int bitsPerValue)
protected int writeLong(long block,
byte[] blocks,
int blocksOffset)
public final int computeIterations(int valueCount,
int ramBudget)
iterations*v values that are
contained in iterations*b blocks into a long[]
(higher values of iterations are likely to yield a better
throughput): this requires n * (b + 8v) bytes of memory.
This method computes iterations as
ramBudget / (b + 8v) (since a long is 8 bytes).