You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Biju Nair (JIRA)" <ji...@apache.org> on 2019/05/28 19:09:00 UTC
[jira] [Commented] (HBASE-17233) See if we should replace
System.arrayCopy with Arrays.copyOfRange
[ https://issues.apache.org/jira/browse/HBASE-17233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16850046#comment-16850046 ]
Biju Nair commented on HBASE-17233:
-----------------------------------
So the conclusion is {{Arrays.copyOfRange}} is better performing than {{System.arraycopy}}. Correct? By how much?
> 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
> Priority: Major
>
> 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
(v7.6.3#76005)