Details
Description
while doing a run with a profiler I noticed this:
FSHLog.java void offer(final long sequence, final SyncFuture [] syncFutures, final int syncFutureCount) { ... this.syncFutures.addAll(Arrays.asList(syncFutures).subList(0, syncFutureCount)); }
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.