/** * Produce results in printable CSV format, separated by separator. * @param fmt text formatter - destination of formatted results. * @param name benchmark name * @param stats benchmark data * @param separator field separator */ private void displayCSV(@NotNull Formatter fmt, @NotNull String name, @NotNull DescriptiveStatistics stats, @NotNull String separator) { double mean = stats.getMean(); double err = stats.getStandardDeviation() / mean * 100; long conv = scale.toNanos(1); fmt.format("%s%s%g%s%g%s%g%s%g%s%g%n", name, separator, mean / conv, separator, median(stats) / conv, separator, stats.getMin() / conv, separator, stats.getMax() / conv, separator, err); }
/** * Produce printable result * @param fmt text formatter - destination of formatted results. * @param name benchmark name * @param stats benchmark data */ private void displayStats(@NotNull Formatter fmt, @NotNull String name, @NotNull DescriptiveStatistics stats) { double mean = stats.getMean(); double err = stats.getStandardDeviation() / mean * 100; long conv = scale.toNanos(1); fmt.format("%-30s %-8.4g %-8.4g %-8.4g %-8.4g %-8.4g%n", name, mean / conv, median(stats) / conv, stats.getMin() / conv, stats.getMax() / conv, err); }
/** * Generates a text report displaying univariate statistics from values * that have been added. Each statistic is displayed on a separate * line. * * @return String with line feeds displaying statistics */ @Override public String toString() { StringBuilder outBuffer = new StringBuilder(); String endl = "\n"; outBuffer.append("DescriptiveStatistics:").append(endl); outBuffer.append("n: ").append(getN()).append(endl); outBuffer.append("min: ").append(getMin()).append(endl); outBuffer.append("max: ").append(getMax()).append(endl); outBuffer.append("mean: ").append(getMean()).append(endl); outBuffer.append("std dev: ").append(getStandardDeviation()) .append(endl); try { // No catch for MIAE because actual parameter is valid below outBuffer.append("median: ").append(getPercentile(50)).append(endl); } catch (MathIllegalStateException ex) { outBuffer.append("median: unavailable").append(endl); } outBuffer.append("skewness: ").append(getSkewness()).append(endl); outBuffer.append("kurtosis: ").append(getKurtosis()).append(endl); return outBuffer.toString(); }
static SimpleStats from(DescriptiveStatistics stats) { SimpleStats ss = new SimpleStats(); ss._min = stats.getMin(); ss._max = stats.getMax(); ss._mean = stats.getMean(); ss._std = stats.getStandardDeviation(); ss._median = stats.getPercentile(50); return ss; }
private void logStats(Set<?> set, double[] raw) { DescriptiveStatistics descStats = new DescriptiveStatistics(raw); Log.i( TAG, String.format( Locale.US, STAT_FORMAT, set.getClass().getSimpleName(), set.size(), descStats.getN(), Math.round(descStats.getMin()), Math.round(descStats.getMax()), Math.round(descStats.getMean()), descStats.getStandardDeviation(), descStats.getVariance() ) ); } }
@Override public double getMin() { return descStats.getMin(); }
@Override public void run() { DescriptiveStatistics stats = limiter.getRateStatsSinceLastReport(); if (stats != null) { log.info(String.format("Requests rate stats: count: %d, min: %f, max: %f, mean: %f, std: %f, sum: %f", stats.getN(), stats.getMin(), stats.getMax(), stats.getMean(), stats.getStandardDeviation(), stats.getSum())); } stats = limiter.getUnusedPermitsSinceLastReport(); if (stats != null) { log.info(String.format("Unused permits rate stats: count: %d, min: %f, max: %f, mean: %f, std: %f, sum: %f", stats.getN(), stats.getMin(), stats.getMax(), stats.getMean(), stats.getStandardDeviation(), stats.getSum())); } if (this.policy instanceof QPSPolicy) { QPSPolicy qpsPolicy = (QPSPolicy) this.policy; DynamicTokenBucket dynamicTokenBucket = qpsPolicy.getTokenBucket(); TokenBucket tokenBucket = dynamicTokenBucket.getTokenBucket(); log.info("Stored tokens: " + tokenBucket.getStoredTokens()); } } }
public String getMin() { return formatter.apply(stats.getMin()); }
public static String describe(DescriptiveStatistics stats, Double[] percentiles){ StringBuilder sb = new StringBuilder(); sb.append(String.format("round: mean of %dms [+-%d], measured %d rounds;\n", (long)stats.getMean(), (long)stats.getStandardDeviation(), stats.getN() )); sb.append("\tMin - " + (long)stats.getMin() + "\n"); for(double pctile : percentiles) { sb.append("\t" + pctile + " - " + stats.getPercentile(pctile) + "\n"); } sb.append("\tMax - " + (long)stats.getMax()); return sb.toString(); }
@Override public String toString() { MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this) .add("numResults", stats.getN()) .add("minTime", stats.getMin()) .add("meanTime", stats.getMean()) .add("maxTime", stats.getMax()) .add("25th", stats.getPercentile(25)) .add("50th", stats.getPercentile(50)) .add("75th", stats.getPercentile(75)) .add("90th", stats.getPercentile(90)) .add("95th", stats.getPercentile(95)) .add("99th", stats.getPercentile(99)) .add("99.9th", stats.getPercentile(99.9)) .add("99.99th", stats.getPercentile(99.99)) .add("traces", traces); return helper.toString(); } }
public static void summary(String title, DescriptiveStatistics statistics, PrintStream pw, boolean meanOnly) { if(meanOnly) { pw.println(title + ": " + "\n\tMean: " + statistics.getMean() ); } else { pw.println(title + ": " + "\n\tMean: " + statistics.getMean() + "\n\tMin: " + statistics.getMin() + "\n\t1th: " + statistics.getPercentile(1) + "\n\t5th: " + statistics.getPercentile(5) + "\n\t10th: " + statistics.getPercentile(10) + "\n\t25th: " + statistics.getPercentile(25) + "\n\t50th: " + statistics.getPercentile(50) + "\n\t90th: " + statistics.getPercentile(90) + "\n\t95th: " + statistics.getPercentile(95) + "\n\t99th: " + statistics.getPercentile(99) + "\n\tMax: " + statistics.getMax() + "\n\tStdDev: " + statistics.getStandardDeviation() ); } } public void printDepthSummary(int depth, boolean meanOnly) {
@Override public long getMin() { return (long) descriptiveStatistics.getMin(); } }
@Override public long getMin() { return (long) descriptiveStatistics.getMin(); } }
@Override public long getMin() { return (long) descriptiveStatistics.getMin(); } }
/** * Get the minimal elapsed time for requests within sliding window * * @return the minTime, or {@link Long#MAX_VALUE} if no requests have been * added yet */ public double getAllMinTime() { return allResponsesStats.getMin(); }
/** * Get the minimal elapsed time for requests within sliding window * * @return the minTime, or {@link Long#MAX_VALUE} if no requests have been * added yet */ public double getOkMinTime() { return okResponsesStats.getMin(); }
/** * @return the min number of active threads for this test run * using a sliding window of SLIDING_WINDOW_SIZE */ public int getMinActiveThreads() { return (int) usersStats.getMin(); }
/** * Get the minimal elapsed time for requests within sliding window * * @return the minTime, or {@link Long#MAX_VALUE} if no requests have been * added yet */ public double getKoMinTime() { return koResponsesStats.getMin(); }
static SimpleStats from(DescriptiveStatistics stats) { SimpleStats ss = new SimpleStats(); ss._min = stats.getMin(); ss._max = stats.getMax(); ss._mean = stats.getMean(); ss._std = stats.getStandardDeviation(); ss._median = stats.getPercentile(50); return ss; }
private void writeResults() throws IOException { writeMessageToFile( "Experiment Finished Sucessfully. Data " + max_processes + ", " + stable_time_period + ", " + stats.getMin() + ", " + stats.getMax() + ", " + stats.getMean() + ", " + stats.getVariance() + ", " + stats.getStandardDeviation() + ", " + (stats.getStandardDeviation() / Math.sqrt(stats.getN()))); writeMessageToFile("DataPoints: " + stable_time_period + " " + Arrays.toString(stats.getValues())); }