[ https://issues.apache.org/jira/browse/HADOOP-5727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12703976#action_12703976 ]
Chris Douglas commented on HADOOP-5727: --------------------------------------- As pointed out, the patch returns exactly what Integer::hashCode did, so the fix only removes the object alloc (which is probably also optimized out, but returning {{id}} is clearer). The supplemental hashing in HashMap is interesting; purely out of curiosity, do you happen to have any references for broader, J2SE changes? bq. HashMap is a list-hash, so consecutive hashes followed by a hash collision does not cause a walk of a long linear hash chain. Are you sure? The openjdk6 [source|http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/a42d6999734b/src/share/classes/java/util/HashMap.java] appears to create/walk a list for collisions (addEntry/get)... The current patch looks good, but the comments keep context for this particular fix. Would you mind removing them? > Faster, simpler id.hashCode() which does not allocate memory > ------------------------------------------------------------ > > Key: HADOOP-5727 > URL: https://issues.apache.org/jira/browse/HADOOP-5727 > Project: Hadoop Core > Issue Type: Improvement > Components: mapred > Reporter: Shevek > Assignee: Shevek > Attachments: 00_id-noallocate.patch, 03_id-noallocate.patch > > > Integer.valueOf allocates memory if the integer is not in the object-cache, > which is the vast majority of cases for the task id. It is possible to > compute the hash code of an integer without going via the integer cache, and > hence avoiding allocating memory. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.