use of com.twitter.common.quantity.Data in project commons by twitter.
the class MetricsQueryBench method setUp.
@Override
protected void setUp() {
metrics = Metrics.createDetached();
FakeClock clock = new FakeClock();
Amount<Long, Time> window = WindowedApproxHistogram.DEFAULT_WINDOW;
int slices = WindowedApproxHistogram.DEFAULT_SLICES;
Amount<Long, Time> delta = Amount.of(window.as(Time.MILLISECONDS) / N, Time.MILLISECONDS);
Amount<Long, Data> maxMem = WindowedApproxHistogram.DEFAULT_MAX_MEMORY;
for (int i = 0; i < 10; i++) {
metrics.createCounter("counter-" + i).increment();
HistogramInterface h = new Histogram("hist-" + i, window, slices, maxMem, null, Histogram.DEFAULT_QUANTILES, clock, metrics);
for (int j = 0; j < N; j++) {
h.add(j);
clock.advance(delta);
}
}
// Initialize Histograms and fill them with values (in every buckets for windowed ones)
hist = new Histogram("hist", window, slices, maxMem, null, Histogram.DEFAULT_QUANTILES, clock);
approxHist = new WindowedApproxHistogram(window, slices, maxMem, clock);
winStats = new WindowedStatistics(window, slices, clock);
for (int j = 0; j < N; j++) {
hist.add(j);
approxHist.add(j);
winStats.accumulate(j);
clock.advance(delta);
}
}
use of com.twitter.common.quantity.Data in project commons by twitter.
the class MetricsPrecisionDemo method main.
public static void main(String[] args) {
MetricsPrecisionDemo demo = new MetricsPrecisionDemo();
for (int n = 100; n <= 1000 * 1000; n *= 10) {
for (long mem = 4; mem < 16; mem += 2) {
Amount<Long, Data> maxMemory = Amount.of(mem, Data.KB);
System.out.println("\nnumber of elements:" + n + " maxMemory:" + maxMemory);
System.out.println("Real data");
demo.testHistogram(new ApproximateHistogram(maxMemory), new RealHistogram(), demo.getRealData(n));
System.out.println("Random data");
demo.testHistogram(new ApproximateHistogram(maxMemory), new RealHistogram(), demo.getRandomData(n, 100000, 200000));
}
}
}
use of com.twitter.common.quantity.Data in project commons by twitter.
the class ApproximateHistogramTest method testMemConstraint.
@Test
public void testMemConstraint() {
ImmutableList.Builder<Amount<Long, Data>> builder = ImmutableList.builder();
builder.add(Amount.of(1L, Data.KB));
builder.add(Amount.of(4L, Data.KB));
builder.add(Amount.of(8L, Data.KB));
builder.add(Amount.of(16L, Data.KB));
builder.add(Amount.of(32L, Data.KB));
builder.add(Amount.of(64L, Data.KB));
builder.add(Amount.of(256L, Data.KB));
builder.add(Amount.of(1L, Data.MB));
builder.add(Amount.of(16L, Data.MB));
builder.add(Amount.of(32L, Data.MB));
List<Amount<Long, Data>> sizes = builder.build();
for (Amount<Long, Data> maxSize : sizes) {
ApproximateHistogram hist = new ApproximateHistogram(maxSize);
for (long i = 0; i < 1000 * 1000; i++) {
hist.add(i);
}
long size = ObjectSizeCalculator.getObjectSize(hist);
assertTrue(size < maxSize.as(Data.BYTES));
}
}
Aggregations