[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