diff options
author | jasplin <qt-info@nokia.com> | 2011-01-22 08:48:17 +0100 |
---|---|---|
committer | jasplin <qt-info@nokia.com> | 2011-01-22 08:48:17 +0100 |
commit | e7d4bddcb6794256aa0d7124540f95edd7c31729 (patch) | |
tree | 3e1772ff3131db3f0598ad8cabf2923e3689272b | |
parent | c336344bf4b4e45fd35d1490efae3b1f30f7a4fe (diff) |
Simplified URL for single benchmark time series.
-rw-r--r-- | scripts/gettimeseriesdetails.py | 29 | ||||
-rw-r--r-- | scripts/gettimeseriesstats.py | 28 | ||||
-rw-r--r-- | scripts/misc.py | 21 | ||||
-rw-r--r-- | web/getstats/global.js | 6 | ||||
-rw-r--r-- | web/getstats/tsbm.js | 100 | ||||
-rw-r--r-- | web/getstats/tsbmbody.js | 82 | ||||
-rw-r--r-- | web/getstats/tsstats.js | 63 |
7 files changed, 135 insertions, 194 deletions
diff --git a/scripts/gettimeseriesdetails.py b/scripts/gettimeseriesdetails.py index 0a24fd6..d40bdd4 100644 --- a/scripts/gettimeseriesdetails.py +++ b/scripts/gettimeseriesdetails.py @@ -1,7 +1,8 @@ from dbaccess import execQuery, database from misc import ( idToText, textToId, metricIdToLowerIsBetter, benchmarkToComponents, - getSnapshots, getTimeSeries, getChanges, printJSONHeader) + getSnapshots, getTimeSeries, getChanges, getTimeSeriesMiscStats, + printJSONHeader) class GetTimeSeriesDetails: @@ -47,7 +48,7 @@ class GetTimeSeriesDetails: time_series, metricIdToLowerIsBetter(self.metric_id), self.difftol, self.durtolmin, self.durtolmax) - # Time series: + # Output the time series: print "\"time_series\": [" first_row = True for item in time_series: @@ -60,7 +61,7 @@ class GetTimeSeriesDetails: str(item[4]) + ", " + str(item[5]) + "]") print "]" - # Changes: + # Output changes: print ", \"changes\": [" first_row = True for item in changes: @@ -72,11 +73,31 @@ class GetTimeSeriesDetails: print "[" + str(ts_index) + ", " + str(ratio) + "]" print "]" - # 'Lower is better': + # Output 'lower is better': print ( ", \"lib\": \"" + ("1" if metricIdToLowerIsBetter(self.metric_id) else "0") + "\"") + # Get misc. statistics: + stats = {} + getTimeSeriesMiscStats(time_series, changes, self.snapshots, stats) + + # Output misc. statistics: + print ", \"ms\": " + str(ms) + print ", \"lsd\": " + str(lsd) + print ", \"ni\": " + str(tot_ninvalid) + print ", \"nz\": " + str(tot_nzeros) + print ", \"nc\": " + str(len(changes)) + print ", \"med_of_rses\": " + str(median_of_rses) + print ", \"rse_of_meds\": " + str(rse_of_medians) + print ", \"lc\": " + str(stats["lc"]) + print ", \"lc_timestamp\": " + str(stats["lc_timestamp"]) + print ", \"lc_distance\": " + str(stats["lc_distance"]) + print ", \"lc_gsep_score\": " + str(stats["lc_gsep_score"]) + print ", \"lc_lsep_score\": " + str(stats["lc_lsep_score"]) + print ", \"lc_dur1_score\": " + str(stats["lc_dur1_score"]) + print ", \"lc_dur2_score\": " + str(stats["lc_dur2_score"]) + print "}" class GetTimeSeriesDetailsAsJSON(GetTimeSeriesDetails): diff --git a/scripts/gettimeseriesstats.py b/scripts/gettimeseriesstats.py index 70c805e..e2cf480 100644 --- a/scripts/gettimeseriesstats.py +++ b/scripts/gettimeseriesstats.py @@ -1,7 +1,8 @@ from dbaccess import execQuery, database from misc import ( idToText, textToId, metricIdToLowerIsBetter, benchmarkToComponents, - getSnapshots, getTimeSeries, getChanges, printJSONHeader) + getSnapshots, getTimeSeries, getChanges, getTimeSeriesMiscStats, + printJSONHeader) class GetTimeSeriesStats: @@ -60,12 +61,8 @@ class GetTimeSeriesStats: for benchmark_id, metric_id in bmark_metrics: benchmark = idToText("benchmark", benchmark_id) - # if benchmark != "tst_qhostinfo:lookupSpeed(WithoutCache)": + # if benchmark != "tst_qmetaobject:indexOfMethod(_q_columnsAboutToBeRemoved(QModelIndex,int,int))": # continue - # if benchmark != "tst_QSslSocket:systemCaCertificates()": - # continue - #if benchmark != "tst_GraphicsViewBenchmark:add100ItemsToBeginningOfList(Recycling list containing 500 items)": - # continue test_case, test_function, data_tag = ( benchmarkToComponents(benchmark)) @@ -102,24 +99,7 @@ class GetTimeSeriesStats: stats["med_of_rses"] = median_of_rses stats["rse_of_meds"] = rse_of_medians - if len(changes) > 0: - stats["lc"] = changes[-1][2] - lc_ts_pos = changes[-1][1] - lc_ss_pos = time_series[lc_ts_pos][0] - stats["lc_timestamp"] = self.snapshots[lc_ss_pos][1] - stats["lc_distance"] = (len(self.snapshots) - 1) - lc_ss_pos - stats["lc_gsep_score"] = changes[-1][3] - stats["lc_lsep_score"] = changes[-1][4] - stats["lc_dur1_score"] = changes[-1][5] - stats["lc_dur2_score"] = changes[-1][6] - else: - stats["lc"] = -1 - stats["lc_timestamp"] = -1 - stats["lc_distance"] = -1 - stats["lc_gsep_score"] = -1 - stats["lc_lsep_score"] = -1 - stats["lc_dur1_score"] = -1 - stats["lc_dur2_score"] = -1 + getTimeSeriesMiscStats(time_series, changes, self.snapshots, stats) bmstats_list.append(stats) diff --git a/scripts/misc.py b/scripts/misc.py index 8c48499..10a53e5 100644 --- a/scripts/misc.py +++ b/scripts/misc.py @@ -438,6 +438,27 @@ def getChanges(time_series, lower_is_better, difftol, durtolmin, durtolmax): return tuple(changes) +def getTimeSeriesMiscStats(time_series, changes, snapshots, stats): + if len(changes) > 0: + stats["lc"] = changes[-1][2] + lc_ts_pos = changes[-1][1] + lc_ss_pos = time_series[lc_ts_pos][0] + stats["lc_timestamp"] = snapshots[lc_ss_pos][1] + stats["lc_distance"] = (len(snapshots) - 1) - lc_ss_pos + stats["lc_gsep_score"] = changes[-1][3] + stats["lc_lsep_score"] = changes[-1][4] + stats["lc_dur1_score"] = changes[-1][5] + stats["lc_dur2_score"] = changes[-1][6] + else: + stats["lc"] = -1 + stats["lc_timestamp"] = -1 + stats["lc_distance"] = -1 + stats["lc_gsep_score"] = -1 + stats["lc_lsep_score"] = -1 + stats["lc_dur1_score"] = -1 + stats["lc_dur2_score"] = -1 + + def printJSONHeader(): print "Content-type: text/json\n" diff --git a/web/getstats/global.js b/web/getstats/global.js index d7543dc..a750fb3 100644 --- a/web/getstats/global.js +++ b/web/getstats/global.js @@ -53,6 +53,12 @@ function isNonNullNumber(x) { return (x != null) && (!isNaN(x)); } +function changeMagnitudeScore(change) { + var maxChange = 2.0; + var absChange = (change < 1.0) ? (1.0 / change) : change; + return (Math.min(absChange, maxChange) - 1.0) / (maxChange - 1.0); +} + // Assigns tooltip with text 'text' to jQuery object 'obj'. function setTooltip(obj, text) { obj.attr( diff --git a/web/getstats/tsbm.js b/web/getstats/tsbm.js index e2b5caa..722c36d 100644 --- a/web/getstats/tsbm.js +++ b/web/getstats/tsbm.js @@ -1,7 +1,6 @@ function fetchSnapshots( - database, host, platform, branch, sha11, sha12, difftol, durtolmin, - durtolmax, benchmark, metric, ms, lsd, ni, nz, nc, mdrse, rsemd, lc, lcda, - lcd, lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2) { + database, host, platform, branch, sha11, sha12, benchmark, metric, difftol, + durtolmin, durtolmax) { updateStatus("fetching snapshots ...", true); query = "?db=" + database + @@ -41,9 +40,8 @@ function fetchSnapshots( // Fetch and plot time series: fetchTimeSeries( database, host, platform, branch, sha11, sha12, - difftol, durtolmin, durtolmax, benchmark, metric, ms, - lsd, ni, nz, nc, mdrse, rsemd, lc, lcda, lcd, lcms, - lcss, lcss1, lcgss, lclss, lcds1, lcds2, false); + benchmark, metric, difftol, durtolmin, durtolmax, + false); } } }, @@ -125,91 +123,6 @@ $(document).ready(function() { alert("ERROR: invalid query string (empty durtolmax)"); return; } - var ms = extractArg(args, "ms"); - if (ms == "") { - alert("ERROR: invalid query string (empty ms)"); - return; - } - var lsd = extractArg(args, "lsd"); - if (lsd == "") { - alert("ERROR: invalid query string (empty lsd)"); - return; - } - var ni = extractArg(args, "ni"); - if (ni == "") { - alert("ERROR: invalid query string (empty ni)"); - return; - } - var nz = extractArg(args, "nz"); - if (nz == "") { - alert("ERROR: invalid query string (empty nz)"); - return; - } - var nc = extractArg(args, "nc"); - if (nc == "") { - alert("ERROR: invalid query string (empty nc)"); - return; - } - var mdrse = extractArg(args, "mdrse"); - if (mdrse == "") { - alert("ERROR: invalid query string (empty mdrse)"); - return; - } - var rsemd = extractArg(args, "rsemd"); - if (rsemd == "") { - alert("ERROR: invalid query string (empty rsemd)"); - return; - } - var lc = extractArg(args, "lc"); - if (lc == "") { - alert("ERROR: invalid query string (empty lc)"); - return; - } - var lcda = extractArg(args, "lcda"); - if (lcda == "") { - alert("ERROR: invalid query string (empty lcda)"); - return; - } - var lcd = extractArg(args, "lcd"); - if (lcd == "") { - alert("ERROR: invalid query string (empty lcd)"); - return; - } - var lcms = extractArg(args, "lcms"); - if (lcms == "") { - alert("ERROR: invalid query string (empty lcms)"); - return; - } - var lcss = extractArg(args, "lcss"); - if (lcss == "") { - alert("ERROR: invalid query string (empty lcss)"); - return; - } - var lcss1 = extractArg(args, "lcss1"); - if (lcss1 == "") { - alert("ERROR: invalid query string (empty lcss1)"); - return; - } - var lcgss = extractArg(args, "lcgss"); - if (lcgss == "") { - alert("ERROR: invalid query string (empty lcgss)"); - return; - } - var lclss = extractArg(args, "lclss"); - if (lclss == "") { - alert("ERROR: invalid query string (empty lclss)"); - return; - } - var lcds1 = extractArg(args, "lcds1"); - if (lcds1 == "") { - alert("ERROR: invalid query string (empty lcds1)"); - return; - } - var lcds2 = extractArg(args, "lcds2"); - if (lcds2 == "") { - alert("ERROR: invalid query string (empty lcds2)"); - return; - } $("#div_tsbm_border").css("display", "none"); $("#div_tsbm").css("display", "none"); @@ -228,7 +141,6 @@ $(document).ready(function() { // Fetch snapshots: fetchSnapshots( - database, host, platform, branch, sha11, sha12, difftol, durtolmin, - durtolmax, benchmark, metric, ms, lsd, ni, nz, nc, mdrse, rsemd, - lc, lcda, lcd, lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2); + database, host, platform, branch, sha11, sha12, benchmark, metric, + difftol, durtolmin, durtolmax); }); diff --git a/web/getstats/tsbmbody.js b/web/getstats/tsbmbody.js index f35b025..61db186 100644 --- a/web/getstats/tsbmbody.js +++ b/web/getstats/tsbmbody.js @@ -1075,9 +1075,8 @@ function fetchResultDetails2(benchmark, metric, sha11, sha12) { } function fetchTimeSeries( - database, host, platform, branch, sha11, sha12, difftol, durtolmin, - durtolmax, benchmark, metric, ms, lsd, ni, nz, nc, mdrse, rsemd, lc, lcda, - lcd, lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2, showTSBMURL) { + database, host, platform, branch, sha11, sha12, benchmark, metric, difftol, + durtolmin, durtolmax, showTSBMURL) { hideTSBMURL(); @@ -1090,11 +1089,11 @@ function fetchTimeSeries( "&branch=" + encodeURIComponent(branch) + "&sha11=" + sha11 + "&sha12=" + sha12 + + "&benchmark=" + encodeURIComponent(benchmark) + + "&metric=" + encodeURIComponent(metric) + "&difftol=" + difftol + "&durtolmin=" + durtolmin + - "&durtolmax=" + durtolmax + - "&benchmark=" + encodeURIComponent(benchmark) + - "&metric=" + encodeURIComponent(metric); + "&durtolmax=" + durtolmax; url = "http://" + location.host + "/cgi-bin/getstatswrapper" + query; //alert("url: >" + url + "<"); @@ -1117,6 +1116,47 @@ function fetchTimeSeries( updateStatus("fetching time series ... done", false); updateStatus("", false); + var ms = data.ms; + var lsd = data.lsd; + var ni = null; + var nz = null; + var mdrse = null; + var rsemd = null; + var lc = null; + var lcda = null; + var lcd = null; + var lcms = null; + var lcss = null; + var lcss1 = null; + var lcgss = null; + var lclss = null; + var lcds1 = null; + var lcds2 = null; + + if (lsd >= 0) { + ni = data.ni; + nz = data.nz; + nc = data.nc; + mdrse = data.med_of_rses; + rsemd = data.rse_of_meds; + if (nc > 0) { + lc = data.lc; + var currTime = dateToTimestamp(currDate); + var secsAgo = currTime - data.lc_timestamp; + lcda = secsToDays(secsAgo); + lcd = data.lc_distance; + + lcms = changeMagnitudeScore(lc); + lcgss = parseFloat(data.lc_gsep_score); + lclss = parseFloat(data.lc_lsep_score); + lcds1 = parseFloat(data.lc_dur1_score); + lcds2 = parseFloat(data.lc_dur2_score); + + lcss = lcms * lcgss * lclss * lcds1 * lcds2; + lcss1 = lcms * lcgss * lclss * lcds1; + } + } + createPlot( data.time_series, data.changes, benchmark, metric, parseInt(data.lib), ms, lsd, ni, nz, nc, mdrse, rsemd, @@ -1126,9 +1166,7 @@ function fetchTimeSeries( if (showTSBMURL) enableTSBMURL( database, host, platform, branch, sha11, sha12, - difftol, durtolmin, durtolmax, benchmark, metric, - ms, lsd, ni, nz, nc, mdrse, rsemd, lc, lcda, lcd, - lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2); + benchmark, metric, difftol, durtolmin, durtolmax); } } }, @@ -1160,9 +1198,8 @@ function disableTSBMURL() { } function enableTSBMURL( - database, host, platform, branch, sha11, sha12, difftol, durtolmin, - durtolmax, benchmark, metric, ms, lsd, ni, nz, nc, mdrse, rsemd, lc, lcda, - lcd, lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2) { + database, host, platform, branch, sha11, sha12, benchmark, metric, difftol, + durtolmin, durtolmax) { query = "?db=" + database; query += "&host=" + encodeURIComponent(host); @@ -1170,28 +1207,11 @@ function enableTSBMURL( query += "&branch=" + encodeURIComponent(branch); query += "&sha11=" + sha11; query += "&sha12=" + sha12; + query += "&benchmark=" + encodeURIComponent(benchmark); + query += "&metric=" + encodeURIComponent(metric); query += "&difftol=" + difftol; query += "&durtolmin=" + durtolmin; query += "&durtolmax=" + durtolmax; - query += "&benchmark=" + encodeURIComponent(benchmark); - query += "&metric=" + encodeURIComponent(metric); - query += "&ms=" + encodeURIComponent(ms); - query += "&lsd=" + encodeURIComponent(lsd); - query += "&ni=" + encodeURIComponent(ni); - query += "&nz=" + encodeURIComponent(nz); - query += "&nc=" + encodeURIComponent(nc); - query += "&mdrse=" + encodeURIComponent(mdrse); - query += "&rsemd=" + encodeURIComponent(rsemd); - query += "&lc=" + encodeURIComponent(lc); - query += "&lcda=" + encodeURIComponent(lcda); - query += "&lcd=" + encodeURIComponent(lcd); - query += "&lcms=" + encodeURIComponent(lcms); - query += "&lcss=" + encodeURIComponent(lcss); - query += "&lcss1=" + encodeURIComponent(lcss1); - query += "&lcgss=" + encodeURIComponent(lcgss); - query += "&lclss=" + encodeURIComponent(lclss); - query += "&lcds1=" + encodeURIComponent(lcds1); - query += "&lcds2=" + encodeURIComponent(lcds2); url = "http://" + location.host + "/bm2/tsbm.shtml" + query; diff --git a/web/getstats/tsstats.js b/web/getstats/tsstats.js index a6eaa8c..813985d 100644 --- a/web/getstats/tsstats.js +++ b/web/getstats/tsstats.js @@ -15,9 +15,8 @@ function selectPbmTable() { // Handles clicking a benchmark checkbox. At most one benchmark may // be selected at any time. function clickBenchmarkCheckbox( - cb, tableSel, database, host, platform, branch, sha11, sha12, difftol, - durtolmin, durtolmax, benchmark, metric, ms, lsd, ni, nz, nc, mdrse, rsemd, - lc, lcda, lcd, lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2) { + cb, tableSel, database, host, platform, branch, sha11, sha12, benchmark, + metric, difftol, durtolmin, durtolmax) { if (cb.checked) { // Deselect all other benchmarks: @@ -27,9 +26,8 @@ function clickBenchmarkCheckbox( // Fetch and plot time series: fetchTimeSeries( - database, host, platform, branch, sha11, sha12, difftol, durtolmin, - durtolmax, benchmark, metric, ms, lsd, ni, nz, nc, mdrse, rsemd, - lc, lcda, lcd, lcms, lcss, lcss1, lcgss, lclss, lcds1, lcds2, true); + database, host, platform, branch, sha11, sha12, benchmark, metric, + difftol, durtolmin, durtolmax, true); } else { clearPlot(); } @@ -55,13 +53,13 @@ function populatePbmTable(tableSel, data) { stats = pbm_stats[i]; - var lsd = parseInt(stats.lsd); + var lsd = stats.lsd; var nc = null; var lc = null; if (lsd >= 0) { - nc = parseInt(stats.nc) + nc = stats.nc; if (nc > 0) - lc = parseFloat(stats.lc); + lc = stats.lc; } if (tableSel == "#pbmTable_lcRegr") { if ((lc == null) || (lc >= 1)) @@ -72,7 +70,7 @@ function populatePbmTable(tableSel, data) { } // NOTE: Unused for now: - //lowerIsBetter = parseInt(stats.lib); + //lowerIsBetter = stats.lib; var ms = null; var ni = null; @@ -91,22 +89,22 @@ function populatePbmTable(tableSel, data) { var rbdy = ""; - var ms = parseInt(stats.ms); + var ms = stats.ms; rbdy += "<td>" + ms + "</td>"; if (lsd >= 0) { rbdy += "<td>" + lsd + "</td>"; - ni = parseInt(stats.ni); + ni = stats.ni; rbdy += "<td>" + ni + "</td>"; - nz = parseInt(stats.nz); + nz = stats.nz; rbdy += "<td>" + nz + "</td>"; - nc = parseInt(stats.nc); + nc = stats.nc; rbdy += "<td>" + nc + "</td>"; - mdrse = parseFloat(stats.med_of_rses) + mdrse = stats.med_of_rses; if (mdrse >= 0) { rbdy += "<td style=\"text-align:right\">" + mdrse.toFixed(2) + "</td>"; @@ -114,7 +112,7 @@ function populatePbmTable(tableSel, data) { rbdy += "<td></td>"; } - rsemd = parseFloat(stats.rse_of_meds); + rsemd = stats.rse_of_meds; if (rsemd >= 0) { rbdy += "<td style=\"text-align:right\">" + rsemd.toFixed(2) + "</td>"; @@ -130,7 +128,7 @@ function populatePbmTable(tableSel, data) { var secsAgo = currTime - stats.lc_timestamp; lcda = secsToDays(secsAgo); - lcd = parseInt(stats.lc_distance); + lcd = stats.lc_distance; rbdy += "<td style=\"background-color:" + ageColor(secsAgo) + "; text-align:right\">" + lcda + " (" + lcd + ")" + "</td>"; @@ -138,10 +136,10 @@ function populatePbmTable(tableSel, data) { lcms = changeMagnitudeScore(lc); rbdy += "<td>" + lcms.toFixed(4) + "</td>"; - lcgss = parseFloat(stats.lc_gsep_score); - lclss = parseFloat(stats.lc_lsep_score); - lcds1 = parseFloat(stats.lc_dur1_score); - lcds2 = parseFloat(stats.lc_dur2_score); + lcgss = stats.lc_gsep_score; + lclss = stats.lc_lsep_score; + lcds1 = stats.lc_dur1_score; + lcds2 = stats.lc_dur2_score; lcss = lcms * lcgss * lclss * lcds1 * lcds2; rbdy += "<td>" + lcss + "</td>"; @@ -189,27 +187,10 @@ function populatePbmTable(tableSel, data) { "clickBenchmarkCheckbox(this, '" + tableSel + "', '" + data.database + "', '" + data.host + "', '" + data.platform + "', '" + data.branch + "', '" + - data.sha11 + "', '" + data.sha12 + "', " + + data.sha11 + "', '" + data.sha12 + "', '" + + stats.bm + "', '" + stats.mt + "', " + data.difftol + ", " + data.durtolmin + ", " + - data.durtolmax + ", '" + stats.bm + "', '" + - stats.mt + "', " + - ms + ", " + - lsd + ", " + - ni + ", " + - nz + ", " + - nc + ", " + - mdrse + ", " + - rsemd + ", " + - lc + ", " + - lcda + ", " + - lcd + ", " + - lcms + ", " + - lcss + ", " + - lcss1 + ", " + - lcgss + ", " + - lclss + ", " + - lcds1 + ", " + - lcds2 + + data.durtolmax + ")\"</td>" + rbdy; |