diff options
author | Josh Blum | 2013-03-24 19:04:42 -0500 |
---|---|---|
committer | Josh Blum | 2013-03-24 19:04:42 -0500 |
commit | 6d48be36ff461c1ffa767875b1e87f5f7b41e61b (patch) | |
tree | c709d3b7739b4f125b932e244ba647dae2064961 /python/gras | |
parent | 9968740a880b08a86b0fd40902d3babb7ab9bca6 (diff) | |
download | sandhi-6d48be36ff461c1ffa767875b1e87f5f7b41e61b.tar.gz sandhi-6d48be36ff461c1ffa767875b1e87f5f7b41e61b.tar.bz2 sandhi-6d48be36ff461c1ffa767875b1e87f5f7b41e61b.zip |
gras: various tweaks to the js
Diffstat (limited to 'python/gras')
-rw-r--r-- | python/gras/stats/CMakeLists.txt | 1 | ||||
-rw-r--r-- | python/gras/stats/chart_factory.js | 23 | ||||
-rw-r--r-- | python/gras/stats/chart_handler_breakdown.js | 5 | ||||
-rw-r--r-- | python/gras/stats/chart_overall_throughput.js | 18 | ||||
-rw-r--r-- | python/gras/stats/chart_overhead_compare.js | 5 | ||||
-rw-r--r-- | python/gras/stats/main.html | 1 | ||||
-rw-r--r-- | python/gras/stats/main.js | 23 | ||||
-rw-r--r-- | python/gras/stats/registry.js | 36 | ||||
-rw-r--r-- | python/gras/stats/utils.js | 8 |
9 files changed, 58 insertions, 62 deletions
diff --git a/python/gras/stats/CMakeLists.txt b/python/gras/stats/CMakeLists.txt index fe07f55..0b91cee 100644 --- a/python/gras/stats/CMakeLists.txt +++ b/python/gras/stats/CMakeLists.txt @@ -14,7 +14,6 @@ INSTALL( FILES main.html main.js - registry.js utils.js chart_factory.js chart_overhead_compare.js diff --git a/python/gras/stats/chart_factory.js b/python/gras/stats/chart_factory.js index cd096a5..4f9a789 100644 --- a/python/gras/stats/chart_factory.js +++ b/python/gras/stats/chart_factory.js @@ -1,13 +1,13 @@ /*********************************************************************** * One time setup **********************************************************************/ -function gras_chart_factory_setup(registry) +function gras_chart_factory_setup(point) { - if (registry.history.length != 1) return; - var id = $('gras_stats:first', registry.history[0]).attr('id'); + var id = $('gras_stats:first', point).attr('id'); $('#top_name').append(' - ' + id); - $.each(registry.getBlockIds(), function(index, id) + $('block', point).each(function(index, block) { + var id = $(block).attr('id'); var div = $('.chart_designer_blocks').get(index%2); $(div).append('<label>' + id + '</label>'); var input = $('<input />').attr({ @@ -53,10 +53,17 @@ function gras_chart_factory_dispatcher() tr.append(td); //call into the factory - var chart = new gras_chart_factory_registry[chart_type]({ - block_ids:selected_blocks, - panel:td.get(0), - }); + try + { + var chart = new gras_chart_factory_registry[chart_type]({ + block_ids:selected_blocks, + panel:td.get(0), + }); + } + catch(err) + { + return; + } //setup the title var tr_title = $('<tr />'); diff --git a/python/gras/stats/chart_handler_breakdown.js b/python/gras/stats/chart_handler_breakdown.js index a8d7b15..cd7e048 100644 --- a/python/gras/stats/chart_handler_breakdown.js +++ b/python/gras/stats/chart_handler_breakdown.js @@ -1,7 +1,7 @@ function GrasChartHandlerBreakdown(args) { //input checking - if (args.block_ids.length != 1) gras_error_dialog( + if (args.block_ids.length != 1) throw gras_error_dialog( "GrasChartHandlerBreakdown", "Error making handler breakdown chart.\n"+ "Specify only one block for this chart." @@ -16,9 +16,8 @@ function GrasChartHandlerBreakdown(args) this.title = "Handler Breakdown - " + this.block_id; } -GrasChartHandlerBreakdown.prototype.update = function(history) +GrasChartHandlerBreakdown.prototype.update = function(point) { - var point = history[history.length-1]; var percents = gras_extract_percent_times(point, this.block_id); var data = google.visualization.arrayToDataTable([ ['Task', 'Percent'], diff --git a/python/gras/stats/chart_overall_throughput.js b/python/gras/stats/chart_overall_throughput.js index d9c6730..55a8241 100644 --- a/python/gras/stats/chart_overall_throughput.js +++ b/python/gras/stats/chart_overall_throughput.js @@ -4,30 +4,34 @@ function GrasChartOverallThroughput(args) this.ids = args.block_ids; //input checking - if (this.ids.length <= 1) gras_error_dialog( + if (this.ids.length == 0) throw gras_error_dialog( "GrasChartOverallThroughput", "Error making overall thoughput chart.\n"+ - "Specify at least 2 blocks for this chart." + "Specify at least 1 block for this chart." ); //make new chart this.chart = new google.visualization.LineChart(args.panel); this.title = "Overall Throughput vs Time"; + this.history = new Array(); } -GrasChartOverallThroughput.prototype.update = function(history) +GrasChartOverallThroughput.prototype.update = function(point) { - if (history.length < 2) return; + this.history.push(point); + if (this.history.length == 1) this.p0 = point; + if (this.history.length < 2) return; + if (this.history.length > 10) this.history.splice(0, 1); var data_set = [['Throughput'].concat(this.ids)]; - for (var i = Math.max(history.length-10, 1); i < history.length; i++) + for (var i = 1; i < this.history.length; i++) { var row = new Array(); - row.push(i.toString()); + row.push(gras_extract_stat_time_delta(this.p0, this.history[i]).toFixed(2).toString()); for (var j = 0; j < this.ids.length; j++) { - row.push(gras_extract_throughput_delta(history[i-1], history[i], this.ids[j])/1e6); + row.push(gras_extract_throughput_delta(this.history[i-1], this.history[i], this.ids[j])/1e6); } data_set.push(row); } diff --git a/python/gras/stats/chart_overhead_compare.js b/python/gras/stats/chart_overhead_compare.js index 278ae7a..37a1350 100644 --- a/python/gras/stats/chart_overhead_compare.js +++ b/python/gras/stats/chart_overhead_compare.js @@ -4,7 +4,7 @@ function GrasChartOverheadCompare(args) this.ids = args.block_ids; //input checking - if (this.ids.length <= 1) gras_error_dialog( + if (this.ids.length <= 1) throw gras_error_dialog( "GrasChartOverheadCompare", "Error making overhead compare chart.\n"+ "Specify at least 2 blocks for this chart." @@ -16,9 +16,8 @@ function GrasChartOverheadCompare(args) this.title = "Overhead Comparison"; } -GrasChartOverheadCompare.prototype.update = function(history) +GrasChartOverheadCompare.prototype.update = function(point) { - var point = history[history.length-1]; var data_set = new Array(); data_set.push(['Task', 'Percent']); $.each(this.ids, function(index, id) diff --git a/python/gras/stats/main.html b/python/gras/stats/main.html index 1f91f90..21034d1 100644 --- a/python/gras/stats/main.html +++ b/python/gras/stats/main.html @@ -9,7 +9,6 @@ <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type="text/javascript" src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> - <script type="text/javascript" src="/registry.js"></script> <script type="text/javascript" src="/utils.js"></script> <script type="text/javascript" src="/chart_factory.js"></script> <script type="text/javascript" src="/chart_overhead_compare.js"></script> diff --git a/python/gras/stats/main.js b/python/gras/stats/main.js index 99ed152..e0f32e6 100644 --- a/python/gras/stats/main.js +++ b/python/gras/stats/main.js @@ -1,4 +1,18 @@ /*********************************************************************** + * Stats registry data structure + **********************************************************************/ +var GrasStatsRegistry = function() +{ + this.init = false; + this.ids = new Array(); + this.enables = new Array(); + this.block_enables = new Array(); + this.overall_rate = 2.0; + this.overall_active = true; + this.block_charts = new Array(); +} + +/*********************************************************************** * Query stats **********************************************************************/ var gras_query_stats = function(registry) @@ -14,11 +28,14 @@ var gras_query_stats = function(registry) { if ($(xml, "gras_stats") !== undefined) { - registry.appendPoint(xml); - gras_chart_factory_setup(registry); + if (!registry.init) + { + gras_chart_factory_setup(xml); + registry.init = true; + } $.each(gras_chart_active_registry, function(index, chart) { - chart.update(registry.history); + chart.update(xml); }); } diff --git a/python/gras/stats/registry.js b/python/gras/stats/registry.js deleted file mode 100644 index e663583..0000000 --- a/python/gras/stats/registry.js +++ /dev/null @@ -1,36 +0,0 @@ -/*********************************************************************** - * Stats registry data structure - **********************************************************************/ -var GrasStatsRegistry = function() -{ - this.ids = new Array(); - this.enables = new Array(); - this.history = new Array(); - this.block_enables = new Array(); - this.overall_rate = 2.0; - this.overall_active = true; - this.block_charts = new Array(); -} - -GrasStatsRegistry.prototype.appendPoint = function(point) -{ - this.history.push(point); - var self = this; - if (this.history.length == 1) - { - $('block', this.history[0]).each(function() - { - self.ids.push($(this).attr('id')); - }); - } -}; - -GrasStatsRegistry.prototype.getBlockIds = function() -{ - var ids = new Array(); - $('block', this.history[0]).each(function() - { - ids.push($(this).attr('id')); - }); - return ids; -}; diff --git a/python/gras/stats/utils.js b/python/gras/stats/utils.js index 425b7c6..f5e5ee8 100644 --- a/python/gras/stats/utils.js +++ b/python/gras/stats/utils.js @@ -34,6 +34,14 @@ var gras_extract_throughput = function(point, id) return (total_items*tps)/(stats_time-start_time); } +var gras_extract_stat_time_delta = function(p0, p1) +{ + var t0 = parseInt($('now', p0).text()); + var t1 = parseInt($('now', p1).text()); + var tps = parseInt($('tps', p0).first().text()); + return (t1-t0)/(tps); +} + var gras_extract_percent_times = function(point, id) { var block_data = $('block[id="' + id + '"]', point); |