X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fscripts%2Fpublic_html%2Fbench.php;fp=matita%2Fscripts%2Fpublic_html%2Fbench.php;h=0b1186e4aea4c836adf5bc71bb9a896c00eaad1e;hp=0000000000000000000000000000000000000000;hb=f61af501fb4608cc4fb062a0864c774e677f0d76;hpb=58ae1809c352e71e7b5530dc41e2bfc834e1aef1 diff --git a/matita/scripts/public_html/bench.php b/matita/scripts/public_html/bench.php new file mode 100644 index 000000000..0b1186e4a --- /dev/null +++ b/matita/scripts/public_html/bench.php @@ -0,0 +1,430 @@ + $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):
    + +
    +
    +
    + + +