MAPREDUCE-1248. Fixes redudant memory copying in StreamKeyValUtil. Contributed by Ruibang He.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/mapreduce/trunk@961578 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index c908b82..b1a74f9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -72,6 +72,9 @@
MAPREDUCE-1893. Slive with multiple reducers. (shv)
+ MAPREDUCE-1248. Fixes redudant memory copying in StreamKeyValUtil.
+ (Ruibang He via amareshwari)
+
OPTIMIZATIONS
MAPREDUCE-1354. Enhancements to JobTracker for better performance and
diff --git a/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamKeyValUtil.java b/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamKeyValUtil.java
index 4d57518..75e05dc 100644
--- a/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamKeyValUtil.java
+++ b/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamKeyValUtil.java
@@ -69,13 +69,9 @@
throw new IllegalArgumentException("splitPos must be in the range " +
"[" + start + ", " + (start+length) + "]: " + splitPos);
int keyLen = (splitPos-start);
- byte [] keyBytes = new byte[keyLen];
- System.arraycopy(utf, start, keyBytes, 0, keyLen);
int valLen = (start+length)-splitPos-separatorLength;
- byte [] valBytes = new byte[valLen];
- System.arraycopy(utf, splitPos+separatorLength, valBytes, 0, valLen);
- key.set(keyBytes);
- val.set(valBytes);
+ key.set(utf, start, keyLen);
+ val.set(utf, splitPos+separatorLength, valLen);
}
/**