This is an automated email from the ASF dual-hosted git repository.
inigoiri pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 827e192 HADOOP-17901. Performance degradation in Text.append() after
HADOOP-1… (#3411)
827e192 is described below
commit 827e19271a8808f1ebdc3f442899d3a70b93505e
Author: pbacsko <[email protected]>
AuthorDate: Sat Sep 11 01:01:37 2021 +0200
HADOOP-17901. Performance degradation in Text.append() after HADOOP-1…
(#3411)
---
.../hadoop-common/src/main/java/org/apache/hadoop/io/Text.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
index 4915100..f39b1b7 100644
---
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
+++
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
@@ -268,8 +268,7 @@ public class Text extends BinaryComparable
*/
public void append(byte[] utf8, int start, int len) {
byte[] original = bytes;
- int capacity = Math.max(length + len, length + (length >> 1));
- if (ensureCapacity(capacity)) {
+ if (ensureCapacity(length + len)) {
System.arraycopy(original, 0, bytes, 0, length);
}
System.arraycopy(utf8, start, bytes, length, len);
@@ -302,7 +301,10 @@ public class Text extends BinaryComparable
*/
private boolean ensureCapacity(final int capacity) {
if (bytes.length < capacity) {
- bytes = new byte[capacity];
+ // Try to expand the backing array by the factor of 1.5x
+ // (by taking the current size + diving it by half)
+ int targetSize = Math.max(capacity, bytes.length + (bytes.length >> 1));
+ bytes = new byte[targetSize];
return true;
}
return false;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]