in src/main/java/org/apache/datasketches/characterization/kll/KllFloatsSketchSpeedProfile.java [77:130]
public void doTrial() {
final long startBuild = System.nanoTime();
final KllFloatsSketch sketch = KllFloatsSketch.newHeapInstance(k);
//final KllFloatsSketch sketch = new KllFloatsSketch(k);
final long stopBuild = System.nanoTime();
buildTimeNs += stopBuild - startBuild;
final long startUpdate = System.nanoTime();
for (int i = 0; i < inputValues.length; i++) {
sketch.update(inputValues[i]);
}
final long stopUpdate = System.nanoTime();
updateTimeNs += stopUpdate - startUpdate;
final long startGetQuantile = System.nanoTime();
for (final double value: quantileQueryValues) {
sketch.getQuantile(value);
}
final long stopGetQuantile = System.nanoTime();
getQuantileTimeNs += stopGetQuantile - startGetQuantile;
final long startGetQuantiles = System.nanoTime();
sketch.getQuantiles(quantileQueryValues);
final long stopGetQuantiles = System.nanoTime();
getQuantilesTimeNs += stopGetQuantiles - startGetQuantiles;
final long startGetRank = System.nanoTime();
for (final float value: rankQueryValues) {
sketch.getRank(value);
}
final long stopGetRank = System.nanoTime();
getRankTimeNs += stopGetRank - startGetRank;
final long startGetCdf = System.nanoTime();
sketch.getCDF(rankQueryValues);
final long stopGetCdf = System.nanoTime();
getCdfTimeNs += stopGetCdf - startGetCdf;
final long startSerialize = System.nanoTime();
final byte[] bytes = sketch.toByteArray();
final long stopSerialize = System.nanoTime();
serializeTimeNs += stopSerialize - startSerialize;
final Memory mem = Memory.wrap(bytes);
final long startDeserialize = System.nanoTime();
KllFloatsSketch.heapify(mem);
final long stopDeserialize = System.nanoTime();
deserializeTimeNs += stopDeserialize - startDeserialize;
// could record the last one since they must be the same
// but let's average across all trials to see if there is an anomaly
numRetainedItems += sketch.getNumRetained();
serializedSizeBytes += sketch.getSerializedSizeBytes();
}