$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 @@@ select mark, count(distinct test) as fail_no from bench where result = 'fail' group by mark order by mark desc*** ### Tests failed @@@ select distinct mark, test, result from bench where result = 'fail' order by mark desc***"); $query_gc = urlencode(" GC usage @@@ select bench.mark, SUM(bench.time) - SUM(bench1.time) as gc_hoverhead from bench, bench as bench1 where bench.mark = bench1.mark and bench.test = bench1.test and bench.options = 'gc-on' and bench1.options = 'gc-off' and bench.compilation = bench1.compilation group by mark*** ### GC usage (opt) @@@ select bench.mark, SUM(bench.time) - SUM(bench1.time) as gc_hoverhead from bench, bench as bench1 where bench.mark = bench1.mark and bench.test = bench1.test and bench.options = 'gc-on' and bench1.options = 'gc-off' and bench.compilation = bench1.compilation and bench.compilation = 'opt' group by mark*** ### GC usage (byte) @@@ select bench.mark, SUM(bench.time) - SUM(bench1.time) as gc_hoverhead from bench, bench as bench1 where bench.mark = bench1.mark and bench.test = bench1.test and bench.options = 'gc-on' and bench1.options = 'gc-off' and bench.compilation = bench1.compilation and bench.compilation = 'byte' group by mark***"); $query_auto = urlencode(" Auto (with GC) @@@ select mark, SUM(bench.time) as time from bench where test='auto.ma' and options = 'gc-on' group by mark order by mark desc*** ### Auto (without GC) @@@ select mark, SUM(bench.time) as time from bench where test='auto.ma' and options = 'gc-off' group by mark order by mark desc *** ### GC overhead @@@ select bench.mark, SUM(bench.time) - SUM(bench1.time) as gc_hoverhead from bench, bench as bench1 where bench.mark = bench1.mark and bench.test = bench1.test and bench.options = 'gc-on' and bench1.options = 'gc-off' and bench.compilation = bench1.compilation and bench.test = 'auto.ma' group by mark ***"); $query_csc = urlencode(" Performances (byte and GC) per mark @@@ select 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_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_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(" Max N @@@ select COUNT(DISTINCT test) as MAX from bench group by mark order by MAX desc LIMIT 0,1; ### Number of compiled tests @@@ select mark, COUNT(DISTINCT test) as N from bench group by mark order by mark desc ***"); function minus1_to_all($s){ if ($s == "-1") return "all"; else return $s; } function links_of($name,$q,$limits){ echo "
  • $name :   "; if (strpos($q, urlencode("***")) === false) { echo "all"; } else { foreach($limits as $l) { $q1 = str_replace(urlencode("***"), " LIMIT 0,$l", $q); echo "" . minus1_to_all($l) . "  "; } $q1 = str_replace(urlencode("***"), " ", $q); echo "" . minus1_to_all("-1") . "  "; } echo "
  • "; } 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 "
    ";
     foreach ($res as $k => $v) { echo "$v\n"; }
     echo "
    "; } ?>

    QUERY the benchmark system

    Last Commits

    Common Queries

    Custom Query - Simple Interface

    Marks:
    Compilations:
    Options:
    Tests:
    Test results:
    Group By:
    Limit:

    Custom Query - raw SQL

    'bench' table description:
    'bench_svn' table description:
    SQL (only one query, ';' if present must terminate the query, no characters allowed after it):