David Mollitor created ORC-830:
----------------------------------
Summary: Do Not Copy String When Adding to
StringHashTableDictionary
Key: ORC-830
URL: https://issues.apache.org/jira/browse/ORC-830
Project: ORC
Issue Type: Improvement
Components: Java
Reporter: David Mollitor
Assignee: David Mollitor
{code:java|title=StringHashTableDictionary.java}
Text tmpText = new Text();
for (int i = 0; i < candidateArray.size(); i++) {
getText(tmpText, candidateArray.get(i));
if (tmpText.equals(newKey)) {
return candidateArray.get(i);
}
}
{code}
When there is a collision adding a value into a {{StringHashTableDictionary}},
a temp {{Text}} object is created and then each value in the byte array is
copied into the temp {{Text}} until a match is found (or worst-case scenario,
a match is not found and every value is loaded).
Instead of loading (copying) the values, just compare directly against the byte
array without copying the data into a intermediate (temp) buffer.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)