code: public String prettyPrint() {
          StringBuilder sb = new StringBuilder(shortSummary());
          sb.append('\n');
          sb.append("-----------------------------------------\n");
          sb.append("ms     %     Task name\n");
          sb.append("-----------------------------------------\n");
          NumberFormat nf = NumberFormat.getNumberInstance();
          nf.setMinimumIntegerDigits(5);
          nf.setGroupingUsed(false);
          NumberFormat pf = NumberFormat.getPercentInstance();
          pf.setMinimumIntegerDigits(3);
          pf.setGroupingUsed(false);
          final TaskInfo[] taskInfos = getTaskInfo();
          Arrays.sort(taskInfos, new Comparator<TaskInfo>() {
              @Override
              public int compare(TaskInfo o1, TaskInfo o2) {
                  return Long.compare(o1.getTimeMillis(), o2.getTimeMillis());
              }
          });
          for (TaskInfo task : taskInfos) {
              sb.append(nf.format(task.getTimeMillis())).append("  ");
              sb.append(pf.format(task.getTimeSeconds() / getTotalTimeSeconds())).append("  ");
              sb.append(task.getTaskName()).append("\n");
          }
          return sb.toString();
      }
docs: Return a string with a table describing all tasks performed.
  For custom reporting, call getTaskInfo() and use the task info directly.