hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ChiaPing Tsai (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17233) See if we should replace System.arrayCopy with Arrays.copyOfRange
Date Mon, 05 Dec 2016 15:33:58 GMT

    [ https://issues.apache.org/jira/browse/HBASE-17233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15722548#comment-15722548

ChiaPing Tsai commented on HBASE-17233:

Thanks for your code.

The copyOfRangeInternal() creates the new array every time, but the arrayCopyInternal() uses
the array(res) which is created only once.
Does it cause the big diff?

> See if we should replace System.arrayCopy with Arrays.copyOfRange
> -----------------------------------------------------------------
>                 Key: HBASE-17233
>                 URL: https://issues.apache.org/jira/browse/HBASE-17233
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
> Just saw this interesting comment in PB code. Since we deal with byte[] extensively (when
we are onheap) we do lot of copies too.
> {code}
> * <p>One of the noticeable costs of copying a byte[] into a new array using
>    * {@code System.arraycopy} is nullification of a new buffer before the copy. It has
been shown
>    * the Hotspot VM is capable to intrisicfy {@code Arrays.copyOfRange} operation to
avoid this
>    * expensive nullification and provide substantial performance gain. Unfortunately
this does not
>    * hold on Android runtimes and could make the copy slightly slower due to additional
code in
>    * the {@code Arrays.copyOfRange}. 
> {code}
> So since we are hotspot VM we could see if the places we use System.arrayCopy can be
replaced with Arrays.copyOfRange.

This message was sent by Atlassian JIRA

View raw message