protected synchronized void collectOperationTimeMillis(long timeInMillis) { collectOperationTimeNanos(timeInMillis * ONE_MILLION); }
@Override public double getMedianTimeRequestInMillis() { return getPercentileMillis(50); } }
@Override public long getTimePerCallInMillis() { long denominator = totalCalls; if (denominator <= 0) { return 0; } return getTotalTime() / denominator; }
@Override public double getPercentCallsFinishedInMillis(int millis) { if (millis <= 0) { return 0.0; } long localTotalCalls = totalCalls; if (localTotalCalls == 0) { return 100.0; } long upper = 1; int comparisonPoint = 1; // comparisonPoint = 1 corresponds to % of numbers > 1 while (upper < millis) { upper <<= 1; comparisonPoint++; } resizeUnderStats(comparisonPoint); double prev = 1.0 - ((double) underStatsMillis.get(comparisonPoint - 1).get()) / localTotalCalls; double next = 1.0 - ((double) underStatsMillis.get(comparisonPoint).get()) / localTotalCalls; // lerp(x0, y0, x1, y1, x) -> y return 100.0 * lerp(upper / 2.0, prev, upper, next, millis); }
private void populateStatsBuckets(long timeInNanos) { long timeInMillis = (timeInNanos + ONE_MILLION - 1) / ONE_MILLION; int index = 0; long upperInclusive = 1; while (upperInclusive < timeInMillis) { resizeUnderStats(index); underStatsMillis.get(index).incrementAndGet(); index++; upperInclusive <<= 1; } resizeUnderStats(index); underStatsMillis.get(index).incrementAndGet(); }
@SuppressWarnings("cast") protected synchronized void collectOperationTimeNanos(long timeInNanos) { operationTimeNanos += timeInNanos; totalCalls++; double doubleTimeInNanos = (double) timeInNanos; doubleSumTimeNanos += doubleTimeInNanos; doubleSumSquaredTimeNanos += doubleTimeInNanos * doubleTimeInNanos; if (timeInNanos > maxCall) { maxCall = timeInNanos; } if (timeInNanos < minCall) { minCall = timeInNanos; } populateStatsBuckets(timeInNanos); }
resizeUnderStats(comparisonPoint); comparisonPoint++; millis <<= 1; resizeUnderStats(comparisonPoint); prevPerc = percent; percent = 100.0 * ((double) underStatsMillis.get(comparisonPoint).get()) / localTotalCalls; double ret = lerp(prevPerc, millis / 2.0, percent, millis, mustBeBellow); if (ret > maxInMillis) { return maxInMillis;
private void populateStatsBuckets(long timeInNanos) { long timeInMillis = (timeInNanos + ONE_MILLION - 1) / ONE_MILLION; int index = 0; long upperInclusive = 1; while (upperInclusive < timeInMillis) { resizeUnderStats(index); underStatsMillis.get(index).incrementAndGet(); index++; upperInclusive <<= 1; } resizeUnderStats(index); underStatsMillis.get(index).incrementAndGet(); }
@SuppressWarnings("cast") protected synchronized void collectOperationTimeNanos(long timeInNanos) { operationTimeNanos += timeInNanos; totalCalls++; double doubleTimeInNanos = (double) timeInNanos; doubleSumTimeNanos += doubleTimeInNanos; doubleSumSquaredTimeNanos += doubleTimeInNanos * doubleTimeInNanos; if (timeInNanos > maxCall) { maxCall = timeInNanos; } if (timeInNanos < minCall) { minCall = timeInNanos; } populateStatsBuckets(timeInNanos); }
@Override public double getPercentCallsFinishedInMillis(int millis) { if (millis <= 0) { return 0.0; } long localTotalCalls = totalCalls; if (localTotalCalls == 0) { return 100.0; } long upper = 1; int comparisonPoint = 1; // comparisonPoint = 1 corresponds to % of numbers > 1 while (upper < millis) { upper <<= 1; comparisonPoint++; } resizeUnderStats(comparisonPoint); double prev = 1.0 - ((double) underStatsMillis.get(comparisonPoint - 1).get()) / localTotalCalls; double next = 1.0 - ((double) underStatsMillis.get(comparisonPoint).get()) / localTotalCalls; // lerp(x0, y0, x1, y1, x) -> y return 100.0 * lerp(upper / 2.0, prev, upper, next, millis); }
public void collectCallTimeNanos(long timeInNs) { super.collectOperationTimeNanos(timeInNs); }
@Override public double getMedianTimeRequestInMillis() { return getPercentileMillis(50); } }
@Override public long getTimePerCallInMillis() { long denominator = totalCalls; if (denominator <= 0) { return 0; } return getTotalTime() / denominator; }
resizeUnderStats(comparisonPoint); comparisonPoint++; millis <<= 1; resizeUnderStats(comparisonPoint); prevPerc = percent; percent = 100.0 * ((double) underStatsMillis.get(comparisonPoint).get()) / localTotalCalls; double ret = lerp(prevPerc, millis / 2.0, percent, millis, mustBeBellow); if (ret > maxInMillis) { return maxInMillis;
public void collectCallTimeNanos(long timeInNs) { super.collectOperationTimeNanos(timeInNs); }
protected synchronized void collectOperationTimeMillis(long timeInMillis) { collectOperationTimeNanos(timeInMillis * ONE_MILLION); }