@Override public long get(int index) { // optimize division and remainder for powers of 2 final int bufferNum = index >> div; if (bufferNum != currBufferNum) { loadBuffer(bufferNum); } final int bufferIndex = index & rem; return reader.read(bufferIndex); } };
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedLongBuffers.get(bufferNum); buffer = holder.get(); currBufferNum = bufferNum; reader.setBuffer(buffer); }
@Override public long get(int index) { // division + remainder is optimized by the compiler so keep those together final int bufferNum = index / sizePer; final int bufferIndex = index % sizePer; if (bufferNum != currBufferNum) { loadBuffer(bufferNum); } return reader.read(bufferIndex); }
@Override public long get(int index) { return reader.read(index); }
@Override public long get(int index) { // division + remainder is optimized by the compiler so keep those together final int bufferNum = index / sizePer; final int bufferIndex = index % sizePer; if (bufferNum != currBufferNum) { loadBuffer(bufferNum); } return reader.read(bufferIndex); }
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedLongBuffers.get(bufferNum); buffer = holder.get(); currBufferNum = bufferNum; reader.setBuffer(buffer); }
@Override public long get(int index) { // optimize division and remainder for powers of 2 final int bufferNum = index >> div; if (bufferNum != currBufferNum) { loadBuffer(bufferNum); } final int bufferIndex = index & rem; return reader.read(bufferIndex); } };
@Override public long get(int index) { return reader.read(index); }