[ 
https://issues.apache.org/jira/browse/HBASE-13578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matteo Bertozzi updated HBASE-13578:
------------------------------------
       Resolution: Fixed
    Fix Version/s: 1.2.0
                   1.1.0
                   2.0.0
           Status: Resolved  (was: Patch Available)

> Remove Arrays.asList().subList() from FSHLog.offer()
> ----------------------------------------------------
>
>                 Key: HBASE-13578
>                 URL: https://issues.apache.org/jira/browse/HBASE-13578
>             Project: HBase
>          Issue Type: Improvement
>          Components: wal
>    Affects Versions: 1.0.0, 2.0.0, 1.1.0
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>            Priority: Trivial
>             Fix For: 2.0.0, 1.1.0, 1.2.0
>
>         Attachments: ArrayTest.java, HBASE-13578-v0.patch
>
>
> while doing a run with a profiler I noticed this:
> {code}
> FSHLog.java
> void offer(final long sequence, final SyncFuture [] syncFutures, final int 
> syncFutureCount) {
>   ...
>   this.syncFutures.addAll(Arrays.asList(syncFutures).subList(0, 
> syncFutureCount));
> }
> {code}
> it is creating an Arrays.ArrayList then a RandomAccessSubList, 
> and then addAll() is using creating an iterator and call the 
> syncFutures.add() for each item.
> a simpler for loop adding the items directly is not too ugly and it will 
> avoid all this stuff.
> I've attached a simple test to compare the two, it will not make huge 
> difference but since we are in the core path any tiny bit probably helps.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to