public String format() { double[] deciles = computeDeciles(); StringBuilder result = new StringBuilder(); // Compute median double median = numValues == 0 ? 0 : deciles[4]; // Compute 90% percentile double ninetiethPercentile = numValues == 0 ? 0 : deciles[8]; result.append(formatDouble(getMean())); result.append(" / "); result.append(formatDouble(median)); result.append(" / "); result.append(formatDouble(ninetiethPercentile)); result.append(" ms"); return result.toString(); }
public LatencySampleSummary getStatistics(){ LatencySampleSummary summary = new LatencySampleSummary(); summary.set_minimum(minimum); summary.set_maximum(maximum); summary.set_num_values(numValues); summary.set_total(total); List<Double> deciles = Lists.newArrayList(); for (double v : computeDeciles()) { deciles.add(v); } summary.set_deciles(deciles); return summary; }
public static String formatPopulationStatistics(String title, DoublePopulationStatisticsAggregator populationStatistics) { if (populationStatistics == null) { return "-"; } else { double[] deciles = populationStatistics.computeDeciles(); StringBuilder tooltipContent = new StringBuilder(); tooltipContent.append("<table>"); addBar(tooltipContent, "min", populationStatistics.getMinimum(), populationStatistics.getMaximum(), "ms"); for (int i = 0; i < 9; ++i) { addBar(tooltipContent, ((i + 1) * 10) + "%", deciles[i], populationStatistics.getMaximum(), "ms"); } addBar(tooltipContent, "max", populationStatistics.getMaximum(), populationStatistics.getMaximum(), "ms"); tooltipContent.append("</table>"); return htmlTooltip(populationStatistics.format(), title, tooltipContent.toString()); } }