Commit f8e1333
committed
Add batch read methods to PlainValuesReader with bulk ByteBuffer view reads
Add readIntegers/readFloats/readLongs/readDoubles batch methods to all
PlainValuesReader inner classes. All four types use bulk typed-buffer
view reads (e.g. buffer.asIntBuffer().get(dest, offset, count)) which
bypass per-value bounds checks and position updates.
Benchmark results (PlainDecodingBenchmark, 100K values, pre-allocated arrays):
Type Per-value (ops/s) Batch (ops/s) Speedup
INT32 5,454M 28,256M +418%
FLOAT 5,407M 25,798M +377%
INT64 5,408M 8,088M +50%
DOUBLE 7,404M 7,965M +8%1 parent 80f9fea commit f8e1333
1 file changed
Lines changed: 36 additions & 0 deletions
Lines changed: 36 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
70 | 79 | | |
71 | 80 | | |
72 | 81 | | |
| |||
80 | 89 | | |
81 | 90 | | |
82 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
83 | 101 | | |
84 | 102 | | |
85 | 103 | | |
| |||
93 | 111 | | |
94 | 112 | | |
95 | 113 | | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
96 | 123 | | |
97 | 124 | | |
98 | 125 | | |
| |||
106 | 133 | | |
107 | 134 | | |
108 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
109 | 145 | | |
110 | 146 | | |
0 commit comments