in src/main/java/org/apache/datasketches/characterization/hll/HllSerDeProfile.java [59:102]
public void doTrial(final long[] stats, final int uPerTrial) {
sketch.reset(); // reuse the same sketch
final byte[] byteArr;
for (int u = uPerTrial; u-- > 0;) {
sketch.update(++vIn);
}
final long startEstTime_nS = System.nanoTime();
final double est1 = sketch.getEstimate();
final long stopEstTime_nS = System.nanoTime();
final long startSerTime_nS, stopSerTime_nS;
if (compact) {
startSerTime_nS = System.nanoTime();
byteArr = sketch.toCompactByteArray();
stopSerTime_nS = System.nanoTime();
} else {
startSerTime_nS = System.nanoTime();
byteArr = sketch.toUpdatableByteArray();
stopSerTime_nS = System.nanoTime();
}
final Memory mem = Memory.wrap(byteArr);
final HllSketch sketch2;
final long startDeserTime_nS, stopDeserTime_nS;
if (wrap) {
startDeserTime_nS = System.nanoTime();
sketch2 = HllSketch.wrap(mem);
stopDeserTime_nS = System.nanoTime();
} else {
startDeserTime_nS = System.nanoTime();
sketch2 = HllSketch.heapify(mem);
stopDeserTime_nS = System.nanoTime();
}
final double est2 = sketch2.getEstimate();
assert est1 == est2;
stats[est_ns] = stopEstTime_nS - startEstTime_nS;
stats[ser_ns] = stopSerTime_nS - startSerTime_nS;
stats[deser_ns] = stopDeserTime_nS - startDeserTime_nS;
stats[size_bytes] = byteArr.length;
}