String newPath = TMP + File.separator + excerptType.getSimpleName() + "Ic";
deleteOnExit(newPath);
IndexedChronicle newIc = new IndexedChronicle(newPath);
newIc.useUnsafe(excerptType == Unsafe.class);
Excerpt excerpt = newIc.createExcerpt();
long start = 0;
for (int i = -NUM_WARMUP_RECORDS; i < TOTAL_RECORDS; i++) {
if (i == 0)
start = System.nanoTime();
int precision = Math.abs(i) % MAX_PRECISION + 1;
excerpt.startExcerpt(20 * NUM_ENTRIES_PER_RECORD);
if (numType == long.class) {
long[] longs = RANDOM_LONGS[Math.abs(i)];
for (int j = 0; j < NUM_ENTRIES_PER_RECORD; j++) {
excerpt.append(longs[j]);
excerpt.append(' '); // need something in between.
}
} else if (numType == double.class) {
double[] doubles = RANDOM_DOUBLES[Math.abs(i)];
for (int j = 0; j < NUM_ENTRIES_PER_RECORD; j++) {
excerpt.append(doubles[j], precision);
excerpt.append(' '); // need something in between.
}
} else {
fail();
}
excerpt.finish();
}
newIc.close();
long time = System.nanoTime() - start;
System.out.printf("%s %s average time taken %d ns%n", numType, excerptType, time / TOTAL_RECORDS / NUM_ENTRIES_PER_RECORD);