[
https://issues.apache.org/jira/browse/HBASE-9031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13717780#comment-13717780
]
Aditya Kishore commented on HBASE-9031:
---------------------------------------
Thanks for reviewing Jean-Marc.
Since both offset and length are non final variables, JIT might not optimize
and compute this for every iteration. It was one int on stack vs adding two
variables every time. I know it may not matter much on modern CPUs but still :)
> ImmutableBytesWritable.toString() should downcast the bytes before converting
> to hex string
> -------------------------------------------------------------------------------------------
>
> Key: HBASE-9031
> URL: https://issues.apache.org/jira/browse/HBASE-9031
> Project: HBase
> Issue Type: Bug
> Components: io
> Affects Versions: 0.95.1, 0.94.9
> Reporter: Aditya Kishore
> Assignee: Aditya Kishore
> Priority: Minor
> Fix For: 0.95.2
>
> Attachments: HBASE-9031.patch
>
>
> The attached patch addresses few issues.
> # We need only (3*this.length) capacity in ByteBuffer and not
> (3*this.bytes.length).
> # Do not calculate (offset + length) at every iteration.
> # No test is required at every iteration to add space (' ') before every byte
> other than the first one. Uses {{sb.substring(1)}} instead.
> # Finally and most importantly (the original issue of this report), downcast
> the promoted int (the parameter to {{Integer.toHexString()}}) to byte range.
> Without #4, the byte array \{54,125,64, -1, -45\} is transformed to "36 7d 40
> ffffffff ffffffd3" instead of "36 7d 40 ff d3".
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira