Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Invalid
-
None
-
None
-
None
-
None
Description
Improve the performance of class SegmentsUtil from two points:
- In method allocateReuseBytes, the generated byte array should be cached for reuse, if the size does not exceed MAX_BYTES_LENGTH. However, the array is not cached if bytes.length < length, and this will lead to performance overhead:
if (bytes == null) {
if (length <= MAX_BYTES_LENGTH)
else
{ bytes = new byte[length]; }} else if (bytes.length < length)
{ bytes = new byte[length]; }
2. To evaluate the offset, an integer is bitand with a mask to clear to low bits, and then shift right. The bitand is useless:
((index & BIT_BYTE_POSITION_MASK) >>> 3)