[ 
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.

Reply via email to