summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasplin <qt-info@nokia.com>2011-01-22 08:48:17 +0100
committerjasplin <qt-info@nokia.com>2011-01-22 08:48:17 +0100
commite7d4bddcb6794256aa0d7124540f95edd7c31729 (patch)
tree3e1772ff3131db3f0598ad8cabf2923e3689272b
parentc336344bf4b4e45fd35d1490efae3b1f30f7a4fe (diff)
Simplified URL for single benchmark time series.
-rw-r--r--scripts/gettimeseriesdetails.py29
-rw-r--r--scripts/gettimeseriesstats.py28
-rw-r--r--scripts/misc.py21
-rw-r--r--web/getstats/global.js6
-rw-r--r--web/getstats/tsbm.js100
-rw-r--r--web/getstats/tsbmbody.js82
-rw-r--r--web/getstats/tsstats.js63
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 + "&nbsp;(" + 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;