Author: bpoussin Date: 2011-08-24 18:07:45 +0200 (Wed, 24 Aug 2011) New Revision: 2187 Url: http://nuiton.org/repositories/revision/nuiton-utils/2187 Log: Evolution #1711: Add CSV export format data Modified: trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java Modified: trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java =================================================================== --- trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java 2011-08-24 15:54:43 UTC (rev 2186) +++ trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java 2011-08-24 16:07:45 UTC (rev 2187) @@ -230,6 +230,39 @@ // le temps reellement passé dans A est representé par les ===== } + /** @return les statistiques in CSV format*/ + static public String getStatisticsCSVAndClear() { + StringBuilder result = new StringBuilder(); + result.append("method;") + .append("call;") + // TIme is in nano not millis, we must divide by 1000000 + .append("min;") + .append("mean;") + .append("max;") + .append("total;") + .append("call_nest;") + .append("total_with_nest\n"); + + for (NuitonTrace trace : instances) { + for (Method method : trace.statistics.keySet()) { + long[] stat = trace.getStatistics(method); + long meanTime = stat[STAT_TIME_TOTAL] / stat[STAT_CALL]; + result.append(method) + .append(";").append(stat[STAT_CALL]) + // Time is in nano not millis, we must divide by 1000000 + .append(";").append(DurationFormatUtils.formatDuration(stat[STAT_TIME_MIN] / 1000000, "s'.'S")) + .append(";").append(DurationFormatUtils.formatDuration(meanTime / 1000000, "s'.'S")) + .append(";").append(DurationFormatUtils.formatDuration(stat[STAT_TIME_MAX] / 1000000, "s'.'S")) + .append(";").append(DurationFormatUtils.formatDuration(stat[STAT_TIME_TOTAL] / 1000000, "s'.'S")) + .append(";").append(stat[STAT_CALL_NEST_METHOD]) + .append(";").append(DurationFormatUtils.formatDuration(stat[STAT_TIME_TOTAL_NEST_METHOD] / 1000000, "s'.'S")) + .append("\n"); + } + } + instances.clear(); + return result.toString(); + } + /** @return les statistiques */ static public String getStatisticsAndClear() { StringBuilder result = new StringBuilder();