r2484 - in trunk/nuiton-profiling/src/main: java/org/nuiton/profiling resources/org/nuiton/profiling/web
Author: bpoussin Date: 2013-01-30 18:21:40 +0100 (Wed, 30 Jan 2013) New Revision: 2484 Url: http://nuiton.org/projects/nuiton-utils/repository/revisions/2484 Log: dernier commit avant retrait du svn de nuiton-profiling pour son propre projet Modified: trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/index.html trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/nuiton-profiling.js Modified: trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java =================================================================== --- trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java 2013-01-29 17:25:19 UTC (rev 2483) +++ trunk/nuiton-profiling/src/main/java/org/nuiton/profiling/NuitonTrace.java 2013-01-30 17:21:40 UTC (rev 2484) @@ -38,6 +38,7 @@ import java.net.URI; import java.net.URL; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; @@ -303,6 +304,16 @@ // le temps reellement passé dans A est representé par les ===== } + /** + * Method used to get all keys and prevent java.util.ConcurrentModificationException + * @param statistics + * @return + */ + static public Method[] getKeys(Map<Method, Statistic> statistics) { + Method[] result = statistics.keySet().toArray(new Method[statistics.size()]); + return result; + } + /** @return les statistiques in CSV format*/ static public String getStatisticsCSVAndClear() { StringBuilder result = new StringBuilder(); @@ -319,7 +330,8 @@ .append("\n"); for (NuitonTrace trace : instances) { - for (Method method : trace.statistics.keySet()) { + Method[] keys = getKeys(trace.statistics); + for (Method method : keys) { Statistic stat = trace.getStatistics(method); Caller<Method> caller = trace.getCallers(method); long meanTime = stat.timeTotal / stat.call; @@ -353,7 +365,8 @@ String separator = ""; for (NuitonTrace trace : instances) { - for (Method method : trace.statistics.keySet()) { + Method[] keys = getKeys(trace.statistics); + for (Method method : keys) { Statistic stat = trace.getStatistics(method); Caller<Method> caller = trace.getCallers(method); long meanTime = stat.timeTotal / stat.call; @@ -412,7 +425,8 @@ StringBuilder result = new StringBuilder(); for (NuitonTrace trace : instances) { result.append("--- Statistics ---\n"); - for (Method method : trace.statistics.keySet()) { + Method[] keys = getKeys(trace.statistics); + for (Method method : keys) { Statistic stat = trace.getStatistics(method); long meanTime = stat.timeTotal / stat.call; result.append(method).append("\t") Modified: trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/index.html =================================================================== --- trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/index.html 2013-01-29 17:25:19 UTC (rev 2483) +++ trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/index.html 2013-01-30 17:21:40 UTC (rev 2484) @@ -40,6 +40,12 @@ </li> </ul> + <form class="navbar-form pull-left" action="#"> + <button id="deleteAllStat"><i class="icon-trash icon-large"></i> Delete All</button> + </form> + + <p id="info" class="navbar-text"></p> + </div> </div> </div> Modified: trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/nuiton-profiling.js =================================================================== --- trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/nuiton-profiling.js 2013-01-29 17:25:19 UTC (rev 2483) +++ trunk/nuiton-profiling/src/main/resources/org/nuiton/profiling/web/nuiton-profiling.js 2013-01-30 17:21:40 UTC (rev 2484) @@ -12,6 +12,11 @@ addMenuEntry(); }); + $('#deleteAllStat').click(function () { + getMenu().empty(); + saveDatabase(); + }); + $('#download').click(function () { var content = ''; @@ -91,6 +96,10 @@ return $("#treegrid"); } +function getInfo() { + return $("#info"); +} + var currentData = {}; /** @@ -98,10 +107,16 @@ */ function loadData(data) { currentData = data; + updateInfo(currentData); createGraph(currentData); getGrid().trigger("reloadGrid") } +function updateInfo(data) { + var text = "load " + Object.getOwnPropertyNames(data).length + " methods statistics"; + getInfo().text(text); +} + /** * Recupere les donnees d'une instance de Nuiton Profiling et l'ajoute * a la liste des donnees disponibles
participants (1)
-
bpoussin@users.nuiton.org