[llvm-commits] [LNT] r162054 - in /lnt/trunk/lnt/server/ui: templates/v4_graph.html views.py
Michael Gottesman
mgottesman at apple.com
Thu Aug 16 15:47:41 PDT 2012
*NOTE* I am unsure about the colors I chose, so I could use some feedback on that.
On Aug 16, 2012, at 3:43 PM, Michael Gottesman <mgottesman at apple.com> wrote:
> Author: mgottesman
> Date: Thu Aug 16 17:43:33 2012
> New Revision: 162054
>
> URL: http://llvm.org/viewvc/llvm-project?rev=162054&view=rev
> Log:
> [LNT] Added code that allows for moving median and moving average graphs to be created. Additionally I added a button to turn off the revision range highlighting feature in case anyone is so inclined.
>
> Modified:
> lnt/trunk/lnt/server/ui/templates/v4_graph.html
> lnt/trunk/lnt/server/ui/views.py
>
> Modified: lnt/trunk/lnt/server/ui/templates/v4_graph.html
> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/v4_graph.html?rev=162054&r1=162053&r2=162054&view=diff
> ==============================================================================
> --- lnt/trunk/lnt/server/ui/templates/v4_graph.html (original)
> +++ lnt/trunk/lnt/server/ui/templates/v4_graph.html Thu Aug 16 17:43:33 2012
> @@ -69,6 +69,21 @@
> <input type="checkbox" name="normalize_by_median" value="yes" {{
> 'checked' if options.normalize_by_median else ""}}><br>
>
> +<b>Show Moving Average</b>
> +<input type="checkbox" name="show_moving_average" value="yes" {{
> + 'checked' if options.show_moving_average else ""}}><br>
> +
> +<b>Show Moving Median</b>
> +<input type="checkbox" name="show_moving_median" value="yes" {{
> + 'checked' if options.show_moving_median else ""}}><br>
> +
> +<b>Moving Average/Median Window Size</b>
> +<input type="text" name="moving_window_size" value="{{ options.moving_window_size }}"/><br>
> +
> +<b>Hide Revision Comparison Region Highlight</b>
> +<input type="checkbox" name="hide_highlight" value="yes" {{
> + 'checked' if options.hide_highlight else ""}}><br>
> +
> {# Add all the hidden fields. #}
> {% for name,value in request.args.items() %}
> {% if name.startswith('test.') %}
>
> Modified: lnt/trunk/lnt/server/ui/views.py
> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/views.py?rev=162054&r1=162053&r2=162054&view=diff
> ==============================================================================
> --- lnt/trunk/lnt/server/ui/views.py (original)
> +++ lnt/trunk/lnt/server/ui/views.py Thu Aug 16 17:43:33 2012
> @@ -394,7 +394,16 @@
> request.args.get('show_failures'))
> options['normalize_by_median'] = normalize_by_median = bool(
> request.args.get('normalize_by_median'))
> -
> + options['show_moving_average'] = moving_average = bool(
> + request.args.get('show_moving_average'))
> + options['show_moving_median'] = moving_median = bool(
> + request.args.get('show_moving_median'))
> + options['moving_window_size'] = moving_window_size = int(
> + request.args.get('moving_window_size', 10))
> + options['hide_highlight'] = bool(
> + request.args.get('hide_highlight'))
> + show_highlight = not options['hide_highlight']
> +
> # Load the graph parameters.
> graph_tests = []
> for name,value in request.args.items():
> @@ -495,10 +504,12 @@
> errorbar_data = []
> points_data = []
> pts = []
> + moving_median_data = []
> + moving_average_data = []
>
> # Create region of interest for run data region if
> # we are performing a comparison.
> - if compare_to:
> + if compare_to and show_highlight:
> start_rev = compare_to.order.llvm_project_revision
> end_rev = run.order.llvm_project_revision
> revision_range_region = (
> @@ -511,7 +522,8 @@
> for _,values in data])
> else:
> normalize_by = 1.0
> - for x,orig_values in data:
> + for i in range(len(data)):
> + x, orig_values = data[i]
> values = [v*normalize_by for v in orig_values]
> min_value = min(values)
> pts.append((x, min_value))
> @@ -534,9 +546,28 @@
> med = stats.median(values)
> mad = stats.median_absolute_deviation(values, med)
> errorbar_data.append((x, med - mad, med + mad))
> -
> +
> + if moving_average:
> + len_pts = len(pts)
> + start_index = max(0, i - moving_window_size)
> + end_index = min(len_pts, i + moving_window_size)
> +
> + window_pts = [x[1] for x in pts[start_index:end_index]]
> + window_average = sum(window_pts)/len(window_pts)
> + moving_average_data.append((pts[i][0], window_average))
> +
> + if moving_median:
> + len_pts = len(pts)
> + start_index = max(0, i - moving_window_size)
> + end_index = min(len_pts, i + moving_window_size)
> +
> + window_pts = sorted([x[1] for x in pts[start_index:end_index]])
> + median = window_pts[len(window_pts)/2]
> + moving_median_data.append((pts[i][0], median))
> +
> # Add the minimum line plot.
> num_points += len(data)
> +
> graph_plots.append("graph.addPlot([%s], %s);" % (
> ','.join(['[%.4f,%.4f]' % (t,v)
> for t,v in pts]),
> @@ -577,7 +608,7 @@
> pts,style))
>
> # If we are comparing two revisions,
> - if compare_to:
> + if compare_to and show_highlight:
> reg_col = [0.0, 0.0, 1.0]
> graph_plots.append("graph.addPlot([%i, %i],%s);" % (
> revision_range_region[0], revision_range_region[1],
> @@ -598,6 +629,23 @@
> ','.join(['[%.4f,%.4f,%.4f]' % (x,y_min,y_max)
> for x,y_min,y_max in errorbar_data]),
> "new Graph2D_ErrorBarPlotStyle(1, %r)" % (bar_col,)))
> +
> + # Add the moving average plot, if used.
> + if moving_average_data:
> + col = [0.32, 0.6, 0.0]
> + graph_plots.append("graph.addPlot([%s], %s);" % (
> + ','.join(['[%.4f,%.4f]' % (t,v)
> + for t,v in moving_average_data]),
> + "new Graph2D_LinePlotStyle(1, %r)" % (col,)))
> +
> +
> + # Add the moving median plot, if used.
> + if moving_median_data:
> + col = [0.75, 0.0, 1.0]
> + graph_plots.append("graph.addPlot([%s], %s);" % (
> + ','.join(['[%.4f,%.4f]' % (t,v)
> + for t,v in moving_median_data]),
> + "new Graph2D_LinePlotStyle(1, %r)" % (col,)))
>
> return render_template("v4_graph.html", ts=ts, run=run,
> compare_to=compare_to, options=options,
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list