// query ::= name "@@@" sql
//
$limits = array("20","50","100");
+
+$query_last_mark = "select mark from bench order by mark desc limit 1;";
+$last_mark = "";
+function set_last_mark($a) {
+ global $last_mark;
+ foreach ($a as $k => $v) {
+ $last_mark = $v;
+ }
+}
+query($query_last_mark,"set_last_mark");
+
+$query_last_svn_mark = "select revision from bench_svn where mark='$last_mark';";
+$last_svn_mark = "";
+function set_last_svn_mark($a) {
+ global $last_svn_mark;
+ foreach ($a as $k => $v) {
+ $last_svn_mark = trim($v);
+ }
+}
+query($query_last_svn_mark,"set_last_svn_mark");
+
+$query_before_last_mark = "select mark from bench where mark <> '$last_mark' order by mark desc limit 1;";
+$before_last_mark = "";
+function set_before_last_mark($a) {
+ global $before_last_mark;
+ foreach ($a as $k => $v) {
+ $before_last_mark = $v;
+ }
+}
+query($query_before_last_mark,"set_before_last_mark");
+
+$query_before_last_svn_mark = "select revision from bench_svn where mark='$before_last_mark';";
+$before_last_svn_mark = "";
+function set_before_last_svn_mark($a) {
+ global $before_last_svn_mark;
+ foreach ($a as $k => $v) {
+ $before_last_svn_mark = trim($v);
+ }
+}
+query($query_before_last_svn_mark,"set_before_last_svn_mark");
+
$quey_all = urlencode("
Whole content:
@@@
select * from bench order by mark desc***");
+$query_time_diff = urlencode("
+Time diff:
+@@@
+select
+ b1.test as test, b1.timeuser as oldtime, b2.timeuser as newtime, b1.compilation as comp, b1.options as opts,
+ (b2.timeuser - b1.timeuser) as diff
+from
+ bench as b1, bench as b2
+where
+ b1.test = b2.test and
+ b1.options = b2.options and
+ b1.compilation = b2.compilation and
+ b1.result = b2.result and
+ b1.mark = '$before_last_mark' and b2.mark= '$last_mark' and
+ ABS(b2.timeuser - b1.timeuser) > 100
+order by diff desc***");
+
+$query_result_diff = urlencode("
+Result diff:
+@@@
+select
+ b1.test as test, b1.result as oldresult, b2.result as newresult, b1.timeuser as oldtime, b2.timeuser as newtime, b1.compilation as comp, b1.options as opts,
+ (b2.timeuser - b1.timeuser) as diff
+from
+ bench as b1, bench as b2
+where
+ b1.test = b2.test and
+ b1.options = b2.options and
+ b1.compilation = b2.compilation and
+ b1.result <> b2.result and
+ b1.mark = '$before_last_mark' and b2.mark= '$last_mark'
+order by test desc***");
+
$query_fail = urlencode("
Number of failures
@@@
Performances (byte and GC) per mark
@@@
select
- bench.mark,
- bench_svn.revision as revision,
- SUM(bench.time) as sum_time,
- SUM(bench.timeuser) as sum_timeuser,
- COUNT(DISTINCT bench.test) as performed_tests,
- COUNT(DISTINCT bench1.test) as failed_tests
-from
- bench, bench_svn,bench as bench1
-where
- bench.options = 'gc-on' and
- bench.compilation = 'byte' and
- bench_svn.mark = bench.mark and
- bench1.result = 'fail' and
- bench1.mark = bench.mark and
- bench1.compilation = 'byte' and
- bench1.options = 'gc-on'
-group by bench.mark
-order by bench.mark desc
-***");
-
-$query_csc_opt = urlencode("
-Performances (opt and GC) per mark
-@@@
-select
- bench.mark,
- bench_svn.revision as revision,
- SUM(bench.time) as sum_time,
- SUM(bench.timeuser) as sum_timeuser,
- COUNT(DISTINCT bench.test) as performed_tests,
- COUNT(DISTINCT bench1.test) as failed_tests
+ bench_times.mark as mark,
+ bench_svn.revision,
+ bench_times.time as time,
+ bench_times.timeuser as timeuser,
+ bench_times_opt.time as time_opt,
+ bench_times_opt.timeuser as timeuser_opt,
+ bench_times.tests as tests,
+ bench_times_opt.tests as tests_opt,
+ bench_fails.count as fail,
+ bench_fails_opt.count as fail_opt
from
- bench, bench_svn,bench as bench1
+ bench_svn,
+ (select
+ b1.mark as mark, SUM(b1.time) as time,
+ SUM(b1.timeuser) as timeuser,COUNT(DISTINCT b1.test) as tests
+ from bench as b1
+ where
+ b1.options = 'gc-on' and
+ b1.compilation = 'opt'
+ group by b1.mark) as bench_times_opt,
+ (select
+ b1.mark as mark, SUM(b1.time) as time,
+ SUM(b1.timeuser) as timeuser,COUNT(DISTINCT b1.test) as tests
+ from bench as b1
+ where
+ b1.options = 'gc-on' and
+ b1.compilation = 'byte'
+ group by b1.mark) as bench_times,
+ (select
+ b1.mark as mark,
+ SUM(if(b1.result='fail' and b1.compilation='byte' and b1.options='gc-on',1,0))
+ as count
+ from bench as b1
+ group by b1.mark) as bench_fails,
+ (select
+ b1.mark as mark,
+ SUM(if(b1.result='fail' and b1.compilation='opt' and b1.options='gc-on',1,0))
+ as count
+ from bench as b1
+ group by b1.mark) as bench_fails_opt
where
- bench.options = 'gc-on' and
- bench.compilation = 'opt' and
- bench_svn.mark = bench.mark and
- bench1.result = 'fail' and
- bench1.mark = bench.mark and
- bench1.compilation = 'opt' and
- bench1.options = 'gc-on'
-group by bench.mark
-order by bench.mark desc
+ bench_times.mark = bench_fails.mark and
+ bench_times_opt.mark = bench_fails_opt.mark and
+ bench_times.mark = bench_times_opt.mark and
+ bench_svn.mark = bench_times.mark
+ order by bench_svn.mark desc
***");
$query_total = urlencode("
echo "</li>";
}
+function last_commits() {
+ global $last_svn_mark;
+ global $before_last_svn_mark;
+ $query = "svn log -r$last_svn_mark:$before_last_svn_mark -v svn://mowgli.cs.unibo.it/trunk/helm/software";
+ echo $query;
+ exec($query,$res);
+ echo "<pre>";
+ foreach ($res as $k => $v) { echo "$v\n"; }
+ echo "</pre>";
+}
+
?>
<html>
</head>
<body>
<h1>QUERY the benchmark system</h1>
+ <h2>Last Commits</h2>
+ <? last_commits() ?>
<h2>Common Queries</h2>
<p>
<ul>
<? links_of("Broken tests",$query_fail,$limits) ?>
+ <? links_of("Time diff",$query_time_diff,$limits) ?>
+ <? links_of("Result diff",$query_result_diff,$limits) ?>
<? links_of("Garbage collector killer",$query_gc,$limits) ?>
<? links_of("Auto performances",$query_auto,$limits) ?>
- <? links_of("Global performances (bytecode)",$query_csc,$limits) ?>
- <? links_of("Global performances (nativecode)",$query_csc_opt,$limits) ?>
+ <? links_of("Global performances",$query_csc,$limits) ?>
<? links_of("Number of compiled tests",$query_total,$limits) ?>
<? links_of("All table contents",$quey_all,$limits) ?>
</ul>
<td>
<select name="test">";
<option value="--">--</option>";
- <?query("select distinct test from bench;","array_to_combo");?>
+ <?query("select distinct test from bench order by test;","array_to_combo");?>
</select>
</td>
</tr>
<table>
<tr><td>'bench' table description:</td></tr>
</tr>
-<? query("describe bench","printer"); ?>
+<? query("describe bench","printer"); $i=0; ?>
+</tr>
+<tr><td></td></tr>
+<tr><td></td></tr>
+<tr><td>'bench_svn' table description:</td></tr>
+</tr>
+<? query("describe bench_svn","printer"); $i=0; ?>
</tr>
<tr><td></td></tr>
<tr><td colspan="7">
<tr><td colspan="7">
<textarea rows="10" cols="120" name="query"/>
select
- b1.test as test, b1.timeuser as oldtime, b2.timeuser as newtime, b1.compilation as comp, b1.options as opts
+ b1.test as test, b1.timeuser as oldtime, b2.timeuser as newtime, b1.compilation as comp, b1.options as opts,
+ (b2.timeuser - b1.timeuser) as diff
from
bench as b1, bench as b2
where
b1.test = b2.test and
b1.options = b2.options and
b1.compilation = b2.compilation and
- b1.mark = '' and b2.mark= '' and
- ABS(b1.timeuser - b2.timeuser) > 100;</textarea>
+ b1.result = b2.result and
+ b1.mark = '<?php echo $before_last_mark ?>' and b2.mark= '<?php echo $last_mark ?>' and
+ ABS(b2.timeuser - b1.timeuser) < 100
+order by diff desc;
+</textarea>
</td>
</tr>
<tr><td>