/** * find the longest op name out of completed tasks. * * @param taskStats completed tasks to be considered. * @return the longest op name out of completed tasks. */ protected String longestOp(Iterable<TaskStats> taskStats) { String longest = OP; for (final TaskStats stat : taskStats) { if (stat.getElapsed() >= 0) { // consider only tasks that ended String name = stat.getTask().getName(); if (name.length() > longest.length()) { longest = name; } } } return longest; }
protected Report genPartialReport( int reported, LinkedHashMap<String, TaskStats> partOfTasks, int totalSize) { String longetOp = longestOp(partOfTasks.values()); boolean first = true; StringBuilder sb = new StringBuilder(); sb.append(tableTitle(longetOp)); sb.append(newline); int lineNum = 0; for (final TaskStats stat : partOfTasks.values()) { if (!first) { sb.append(newline); } first = false; String line = taskReportLine(longetOp, stat); lineNum++; if (partOfTasks.size() > 2 && lineNum % 2 == 0) { line = line.replaceAll(" ", " - "); } sb.append(line); int[] byTime = stat.getCountsByTime(); if (byTime != null) { sb.append(newline); int end = -1; for (int i = byTime.length - 1; i >= 0; i--) { if (byTime[i] != 0) { end = i; break; } } if (end != -1) { sb.append(" by time:"); for (int i = 0; i < end; i++) { sb.append(' ').append(byTime[i]); } } } } String reptxt = (reported == 0 ? "No Matching Entries Were Found!" : sb.toString()); return new Report(reptxt, partOfTasks.size(), reported, totalSize); }
/** * Compute a report line for the given task stat. * * @param longestOp size of longest op name in the table. * @param stat task stat to be printed. * @return the report line. */ protected String taskReportLine(String longestOp, TaskStats stat) { PerfTask task = stat.getTask(); StringBuilder sb = new StringBuilder(); sb.append(Format.format(task.getName(), longestOp)); String round = (stat.getRound() >= 0 ? "" + stat.getRound() : "-"); sb.append(Format.formatPaddLeft(round, ROUND)); sb.append(getRunData().getConfig().getColsValuesForValsByRound(stat.getRound())); sb.append(Format.format(stat.getNumRuns(), RUNCNT)); sb.append(Format.format(stat.getCount() / stat.getNumRuns(), RECCNT)); long elapsed = (stat.getElapsed() > 0 ? stat.getElapsed() : 1); // assume at least 1ms sb.append(Format.format(2, (float) (stat.getCount() * 1000.0 / elapsed), RECSEC)); sb.append(Format.format(2, (float) stat.getElapsed() / 1000, ELAPSED)); sb.append(Format.format(0, (float) stat.getMaxUsedMem() / stat.getNumRuns(), USEDMEM)); sb.append(Format.format(0, (float) stat.getMaxTotMem() / stat.getNumRuns(), TOTMEM)); return sb.toString(); }