mirror of https://github.com/apache/lucene.git
Reduce ArrayUtil#grow in decompress (#12996)
This commit is contained in:
parent
47021ae98f
commit
ca06693a16
|
@ -198,6 +198,8 @@ Improvements
|
||||||
Optimizations
|
Optimizations
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
* GITHUB#12996: Reduce ArrayUtil#grow in decompress. (Zhang Chao)
|
||||||
|
|
||||||
* GITHUB#13115: Short circuit queued flush check when flush on update is disabled (Prabhat Sharma)
|
* GITHUB#13115: Short circuit queued flush check when flush on update is disabled (Prabhat Sharma)
|
||||||
|
|
||||||
* GITHUB#13085: Remove unnecessary toString() / substring() calls to save some String allocations (Dmitry Cherniachenko)
|
* GITHUB#13085: Remove unnecessary toString() / substring() calls to save some String allocations (Dmitry Cherniachenko)
|
||||||
|
|
|
@ -128,10 +128,12 @@ public final class LZ4WithPresetDictCompressionMode extends CompressionMode {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read blocks that intersect with the interval we need
|
// Read blocks that intersect with the interval we need
|
||||||
|
if (offsetInBlock < offset + length) {
|
||||||
|
bytes.bytes = ArrayUtil.grow(bytes.bytes, bytes.length + offset + length - offsetInBlock);
|
||||||
|
}
|
||||||
while (offsetInBlock < offset + length) {
|
while (offsetInBlock < offset + length) {
|
||||||
final int bytesToDecompress = Math.min(blockLength, offset + length - offsetInBlock);
|
final int bytesToDecompress = Math.min(blockLength, offset + length - offsetInBlock);
|
||||||
LZ4.decompress(in, bytesToDecompress, buffer, dictLength);
|
LZ4.decompress(in, bytesToDecompress, buffer, dictLength);
|
||||||
bytes.bytes = ArrayUtil.grow(bytes.bytes, bytes.length + bytesToDecompress);
|
|
||||||
System.arraycopy(buffer, dictLength, bytes.bytes, bytes.length, bytesToDecompress);
|
System.arraycopy(buffer, dictLength, bytes.bytes, bytes.length, bytesToDecompress);
|
||||||
bytes.length += bytesToDecompress;
|
bytes.length += bytesToDecompress;
|
||||||
offsetInBlock += blockLength;
|
offsetInBlock += blockLength;
|
||||||
|
|
Loading…
Reference in New Issue