diff options
-rw-r--r-- | lib/block_actor.cpp | 2 | ||||
-rw-r--r-- | python/gras/stats/chart_factory.js | 49 | ||||
-rw-r--r-- | python/gras/stats/chart_handler_breakdown.js | 5 | ||||
-rw-r--r-- | python/gras/stats/chart_overall_throughput.js | 5 | ||||
-rw-r--r-- | python/gras/stats/chart_overhead_compare.js | 36 | ||||
-rw-r--r-- | python/gras/stats/main.css | 5 | ||||
-rw-r--r-- | python/gras/stats/main.html | 1 | ||||
-rw-r--r-- | python/gras/stats/main.js | 4 |
8 files changed, 97 insertions, 10 deletions
diff --git a/lib/block_actor.cpp b/lib/block_actor.cpp index 5b1c5db..4aeb2d1 100644 --- a/lib/block_actor.cpp +++ b/lib/block_actor.cpp @@ -13,7 +13,7 @@ ThreadPoolConfig::ThreadPoolConfig(void) thread_count = std::max(size_t(2), thread_count); node_mask = 0; processor_mask = 0xffffffff; - yield_strategy = "STRONG"; + yield_strategy = "POLITE"; } /*********************************************************************** diff --git a/python/gras/stats/chart_factory.js b/python/gras/stats/chart_factory.js index f2cc8f2..1c49717 100644 --- a/python/gras/stats/chart_factory.js +++ b/python/gras/stats/chart_factory.js @@ -1,7 +1,7 @@ /*********************************************************************** * One time setup **********************************************************************/ -var gras_chart_factory_setup = function(registry) +function gras_chart_factory_setup(registry) { if (registry.history.length != 1) return; var id = $('gras_stats:first', registry.history[0]).attr('id'); @@ -20,9 +20,15 @@ var gras_chart_factory_setup = function(registry) } /*********************************************************************** + * chart factory registry (filled in init) + **********************************************************************/ +var gras_chart_factory_registry = new Array(); +var gras_chart_active_registry = new Array(); + +/*********************************************************************** * chart factory dispatcher **********************************************************************/ -var gras_chart_factory_dispatcher = function() +function gras_chart_factory_dispatcher() { //step 1) get a list of the selected blocks var selected_blocks = new Array(); @@ -31,21 +37,46 @@ var gras_chart_factory_dispatcher = function() var input = $(input); if (input.is(':checked')) { - selected_blocks.append(input.attr('name')); + selected_blocks.push(input.attr('name')); } }); //step 2) get the type of chart to create var chart_type = $('#chart_type_selector').val(); - //step 3) input validations + //step 3) create the chart given options + + //create containers + var chart_box = $('<table />').attr({class:'chart_container'}); + var tr = $('<tr />'); + var td = $('<td />'); + tr.append(td); + + //call into the factory + var chart = new gras_chart_factory_registry[chart_type]({ + block_ids:selected_blocks, + panel:td.get(0), + }); + + //setup the title + var tr_title = $('<tr />'); + var th_title = $('<th />'); + tr_title.append(th_title); + th_title.text(chart.title); + + //register the chart + gras_chart_active_registry.push(chart); + $('#charts_panel').append(chart_box); + + //finish gui building + chart_box.append(tr_title); + chart_box.append(tr); } /*********************************************************************** * chart factory init **********************************************************************/ -var gras_chart_registry = new Array(); -var gras_chart_factory_init = function() +function gras_chart_factory_init() { //install callback for chart factory $('#chart_factory_button').click(gras_chart_factory_dispatcher); @@ -60,7 +91,9 @@ var gras_chart_factory_init = function() //init the chart selection input $.each(chart_options, function(index, options) { - gras_chart_registry[options['key']] = options['factory']; - $('#chart_type_selector').append('<option value=' + options['key'] + '>' + options['name'] + '</option>'); + gras_chart_factory_registry[options.key] = options.factory; + var option = $('<option />').attr({value: options.key}); + option.text(options.name); + $('#chart_type_selector').append(option); }); } diff --git a/python/gras/stats/chart_handler_breakdown.js b/python/gras/stats/chart_handler_breakdown.js index 3e8ffd3..c938482 100644 --- a/python/gras/stats/chart_handler_breakdown.js +++ b/python/gras/stats/chart_handler_breakdown.js @@ -2,3 +2,8 @@ function GrasChartHandlerBreakdown(args) { } + +GrasChartHandlerBreakdown.prototype.update = function(history) +{ + +}; diff --git a/python/gras/stats/chart_overall_throughput.js b/python/gras/stats/chart_overall_throughput.js index 13319ee..04c532e 100644 --- a/python/gras/stats/chart_overall_throughput.js +++ b/python/gras/stats/chart_overall_throughput.js @@ -2,3 +2,8 @@ function GrasChartOverallThroughput(args) { } + +GrasChartOverallThroughput.prototype.update = function(history) +{ + +}; diff --git a/python/gras/stats/chart_overhead_compare.js b/python/gras/stats/chart_overhead_compare.js index 0a5d1d9..278ae7a 100644 --- a/python/gras/stats/chart_overhead_compare.js +++ b/python/gras/stats/chart_overhead_compare.js @@ -1,4 +1,38 @@ function GrasChartOverheadCompare(args) { - + //save enables + this.ids = args.block_ids; + + //input checking + if (this.ids.length <= 1) gras_error_dialog( + "GrasChartOverheadCompare", + "Error making overhead compare chart.\n"+ + "Specify at least 2 blocks for this chart." + ); + + //make new chart + this.chart = new google.visualization.PieChart(args.panel); + + this.title = "Overhead Comparison"; } + +GrasChartOverheadCompare.prototype.update = function(history) +{ + var point = history[history.length-1]; + var data_set = new Array(); + data_set.push(['Task', 'Percent']); + $.each(this.ids, function(index, id) + { + var percents = gras_extract_percent_times(point, id); + data_set.push([id, percents['total']]); + }); + + var data = google.visualization.arrayToDataTable(data_set) + + var options = { + width:$('#page').width()/5, + chartArea:{left:5,top:0,right:5,bottom:0,width:"100%",height:"100%"}, + }; + + this.chart.draw(data, options); +}; diff --git a/python/gras/stats/main.css b/python/gras/stats/main.css index 0f05cef..17344c2 100644 --- a/python/gras/stats/main.css +++ b/python/gras/stats/main.css @@ -23,6 +23,11 @@ margin-right:7px; margin-left:3px; } +.chart_container +{ +float:left; +} + #overall_chart_pie table { float:left; diff --git a/python/gras/stats/main.html b/python/gras/stats/main.html index 5a2b99c..27215bf 100644 --- a/python/gras/stats/main.html +++ b/python/gras/stats/main.html @@ -43,6 +43,7 @@ </tr> </table> </div> + <div id="charts_panel"></div> <div id="overall_config"> <table> <tr><th colspan="2">Throughput options</th></tr> diff --git a/python/gras/stats/main.js b/python/gras/stats/main.js index 0ad500e..4c935de 100644 --- a/python/gras/stats/main.js +++ b/python/gras/stats/main.js @@ -19,6 +19,10 @@ var gras_query_stats = function(registry) gras_update_throughput_chart(registry); gras_update_time_compare_chart(registry); gras_update_per_block_charts(registry); + $.each(gras_chart_active_registry, function(index, chart) + { + chart.update(registry.history); + }); } registry.timeout_handle = window.setTimeout(function() |