private static void showAvgGroupSummaries() {

        StringBuilder out = new StringBuilder();
        out.append("\n==============================================\n");
        out.append("===== Avg System Time per/context group  =====\n");
        out.append("==============================================\n");

        Object[] keys = points.keySet().toArray();
        Arrays.sort(keys);

        if (keys.length < 1) {
            out.append("No reporting stats gathered.\n");
        } else {
            int index;
            Set<String> processedContexts = new HashSet<String>();
            for (index = 0; index < keys.length; index++) {
                processedContexts.add(((ThreadTimingContext) keys[index]).getTimingContext());
            }
            for (String contextGroup : processedContexts) {
                int contextCount = 0;
                BigDecimal total = new BigDecimal(0);
                for (index = 0; index < keys.length; index++) {
                    if (((ThreadTimingContext) keys[index]).getTimingContext().equals(contextGroup)) {
                        contextCount += 1;
                        BigDecimal value = points.get(keys[index]);
                        total = total.add(value);
                    }
                }
                BigDecimal avg = total.divide(new BigDecimal(contextCount), 4, RoundingMode.HALF_DOWN);
                out.append("Context group:" + contextGroup + " avg: \t\t"
                        + formatter.format(avg.divide(new BigDecimal(NANO))) + "\n");
            }
        }
        out.append("\n");
        if (consoleOutput)
            System.out.print(out.toString());
        LOG.info(out.toString());
    }