From 7ceaf2e9c12dd4e27ce16d8c29d3bcfd34329a2a Mon Sep 17 00:00:00 2001 From: Pedro Date: Mon, 26 Jan 2015 15:40:39 +0100 Subject: [PATCH] improvements to frontend --- frontend-hyrise/hyrise-connector.js | 20 +++++++++++++++----- frontend-hyrise/index.html | 7 ++++--- frontend-hyrise/style.css | 9 +++++++++ frontend-hyrise/ui.js | 19 ++++++++++++++----- 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/frontend-hyrise/hyrise-connector.js b/frontend-hyrise/hyrise-connector.js index b7f9ac5..8d0bed8 100644 --- a/frontend-hyrise/hyrise-connector.js +++ b/frontend-hyrise/hyrise-connector.js @@ -39,18 +39,21 @@ HyriseConnector.prototype._formatPerformanceData = function(object) { var totalTime = 0; var queryTaskTime = 0; + var parseTime = 0; $.each(performanceData, function(i, data) { data.time_ms = data.endTime - data.startTime; totalTime += data.time_ms; if (data.name === 'SQLQueryTask') queryTaskTime += data.time_ms; + if (data.name === 'RequestParseTask') parseTime += data.time_ms; }); object.performanceData = { totalTime: totalTime, queryTaskTime: queryTaskTime, - operators: performanceData + parseTime: parseTime, + operators: performanceData, } }; @@ -62,6 +65,7 @@ HyriseConnector.prototype.benchmarkSQL = function(query, numRuns, callback) { var result = { totalTime: 0, queryTaskTime: 0, + parseTime: 0, numRuns: allData.length, operators: [] }; @@ -72,6 +76,7 @@ HyriseConnector.prototype.benchmarkSQL = function(query, numRuns, callback) { var perfData = run.performanceData; result.totalTime += perfData.totalTime; result.queryTaskTime += perfData.queryTaskTime; + result.parseTime += perfData.parseTime; $.each(perfData.operators, function(i, data) { if (!(data.id in operatorMap)) { @@ -89,6 +94,7 @@ HyriseConnector.prototype.benchmarkSQL = function(query, numRuns, callback) { // Calc average and Transform into array result.totalTime /= result.numRuns; result.queryTaskTime /= result.numRuns; + result.parseTime /= result.numRuns; $.each(operatorMap, function(id, data) { data.duration /= result.numRuns; @@ -103,17 +109,21 @@ HyriseConnector.prototype.benchmarkSQL = function(query, numRuns, callback) { } var allData = []; - var n = 0; + var num_completed = 0; + function __run() { - ++n; self.executeSQL(query, function(result) { allData.push(result); // Run again or return aggregated Data - if (n < numRuns) __run(); - else __aggregateData(allData); + num_completed++; + if (num_completed == numRuns) __aggregateData(allData); }); } + + for (var i = 0; i < numRuns; ++i) { + __run(); + } __run(); }; \ No newline at end of file diff --git a/frontend-hyrise/index.html b/frontend-hyrise/index.html index edc9c2f..dd1f843 100644 --- a/frontend-hyrise/index.html +++ b/frontend-hyrise/index.html @@ -58,7 +58,8 @@
-

Performance Data (?ms)

+

Performance Data

+

@@ -66,9 +67,9 @@ - - + + diff --git a/frontend-hyrise/style.css b/frontend-hyrise/style.css index 94da14a..602e268 100644 --- a/frontend-hyrise/style.css +++ b/frontend-hyrise/style.css @@ -16,6 +16,7 @@ table { font-size: 14px; } + .content { width: 90%; margin: auto; @@ -26,4 +27,12 @@ textarea#queryInput { font-family: 'Monospace'; height: 500px; resize: none; +} + + +h1, h2, h3, h4, h5, h6 { + margin-top: 0px; +} +h4 { + font-size: 14px; } \ No newline at end of file diff --git a/frontend-hyrise/ui.js b/frontend-hyrise/ui.js index 3d2a85b..4f683e2 100644 --- a/frontend-hyrise/ui.js +++ b/frontend-hyrise/ui.js @@ -190,12 +190,16 @@ function UpdateResultTable(result) { function UpdatePerformanceData(performanceData) { var table = document.querySelector('#performanceDataTable'); - $('#timeTotal').html(performanceData.totalTime.toFixed(2)); + var timeStrings = [ + (performanceData.queryTaskTime + performanceData.parseTime).toFixed(3), + performanceData.queryTaskTime.toFixed(3), + performanceData.parseTime.toFixed(3), + performanceData.totalTime.toFixed(3), + ] + var timeInfo = + ',' + $('#timeInfo').html(timeStrings.join(',')); // Sort and insert into table - if (!table._sortKey) table._sortKey = 'startTime'; - if (!('_asc') in table) table._asc = true; - var tableData = performanceData.operators; table._data = tableData; SortTableData(table); @@ -214,13 +218,18 @@ function InsertPerformanceData(performanceData) { tr.append(CreateElement('td', data.name)); tr.append(CreateElement('td', data.duration)); tr.append(CreateElement('td', data.time_ms.toFixed(6))); + tr.append(CreateElement('td', data.startTime)); + tr.append(CreateElement('td', data.endTime)); tbody.append(tr); }); } function SortTableData(table) { + if (!table._sortKey) table._sortKey = 'startTime'; + if (!('_asc') in table) table._asc = true; + var key = table._sortKey; - var sign = (table._asc) ? 1 : -1; + var sign = (table._asc) ? -1 : 1; table._data.sort(function(a, b) { if (a[key].localeCompare) return sign * a[key].localeCompare(b[key]); return sign * (a[key] - b[key]);
ID Name Duration Time (ms)Start TimeEnd Time