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