Author: David Schneider <david.schnei...@picle.org> Branch: extradoc Changeset: r4757:d363d21d1122 Date: 2012-09-06 16:15 +0200 http://bitbucket.org/pypy/extradoc/changeset/d363d21d1122/
Log: highlight minima and maxima for all used tables diff --git a/talk/vmil2012/tool/build_tables.py b/talk/vmil2012/tool/build_tables.py --- a/talk/vmil2012/tool/build_tables.py +++ b/talk/vmil2012/tool/build_tables.py @@ -74,21 +74,23 @@ (num_99_dot_9, num_99_dot_9 / total * 100), ] table.append(res) - # mark min - for column, (_, index) in enumerate(mins): - table[index][column + 2] = "\cellcolor{darkgray}%s" % \ - table[index][column + 2] - - # marks max - # mark min - for column, (_, index) in enumerate(maxs): - table[index][column + 2] = "\cellcolor{lightgray}%s" % \ - table[index][column + 2] - + mark_min_max(table, mins, maxs, 2) output = render_table(template, head, sorted(table)) write_table(output, texfile) +def mark_min_max(table, mins, maxs, offs): + # mark minima + for column, (_, index) in enumerate(mins): + table[index][column + offs] = "\cellcolor{darkgray}%s" % \ + table[index][column + offs] + + # mark maxima + for column, (_, index) in enumerate(maxs): + table[index][column + offs] = "\cellcolor{lightgray}%s" % \ + table[index][column + offs] + + def we_are_n_percent(info, n): failure_counts = info['results'].values() print failure_counts @@ -135,17 +137,28 @@ lines = getlines(csvfiles[0]) table = [] head = ['Benchmark', 'Compressed', 'Naive', 'xz compressed'] - - for bench in lines: + mins = [(99999, 0)] * 3 + maxs = [(0, 0)] * 3 + for i, bench in enumerate(lines): total = float(bench['total resume data size']) naive = float(bench['naive resume data size']) xz = float(bench['compressed resume data size']) + mins[0] = min(mins[0], (total, i)) + maxs[0] = max(maxs[0], (total, i)) + + mins[1] = min(mins[1], (naive, i)) + maxs[1] = max(maxs[1], (naive, i)) + + mins[2] = min(mins[2], (xz, i)) + maxs[2] = max(maxs[2], (xz, i)) res = [bench['bench'].replace('_', '\\_'), "%.2f {\scriptsize KiB}" % (total,), # (100*total/naive)), "%.2f {\scriptsize KiB}" % (naive), # , 100*naive/total), "%.2f {\scriptsize KiB}" % (xz), # , 100*xz/total), ] table.append(res) + # mark min + mark_min_max(table, mins, maxs, 1) output = render_table(template, head, sorted(table)) write_table(output, texfile) @@ -214,15 +227,39 @@ 'Opt. rate', 'Guard opt. rate', ] + mins = [(99999, 0)] * (len(head) - 1) + maxs = [(0, 0)] * (len(head) - 1) table = [] # collect data keys = 'numeric guard set get rest new'.split() - for bench in lines: + for i, bench in enumerate(lines): ops_bo = sum(int(bench['%s before' % s]) for s in keys) ops_ao = sum(int(bench['%s after' % s]) for s in keys) guards_bo = int(bench['guard before']) + perc_guards_bo = guards_bo / ops_bo * 100 guards_ao = int(bench['guard after']) + perc_guards_ao = guards_ao / ops_ao * 100 + opt_rate = (1 - ops_ao / ops_bo) * 100 + guard_opt_rate = (1 - guards_ao / guards_bo) * 100 + + mins[0] = min(mins[0], (ops_bo, i)) + maxs[0] = max(maxs[0], (ops_bo, i)) + + mins[1] = min(mins[1], (perc_guards_bo, i)) + maxs[1] = max(maxs[1], (perc_guards_bo, i)) + + mins[2] = min(mins[2], (ops_ao, i)) + maxs[2] = max(maxs[2], (ops_ao, i)) + + mins[3] = min(mins[3], (perc_guards_ao, i)) + maxs[3] = max(maxs[3], (perc_guards_ao, i)) + + mins[4] = min(mins[4], (opt_rate, i)) + maxs[4] = max(maxs[4], (opt_rate, i)) + + mins[5] = min(mins[5], (guard_opt_rate, i)) + maxs[5] = max(maxs[5], (guard_opt_rate, i)) # the guard count collected from jit-summary counts more guards than # actually emitted, so the number collected from parsing the logfiles # will probably be lower @@ -230,13 +267,14 @@ res = [ bench['bench'].replace('_', '\\_'), ops_bo, - "%.1f\\%%" % (guards_bo / ops_bo * 100,), + "%.1f\\%%" % perc_guards_bo, ops_ao, - "%.1f\\%%" % (guards_ao / ops_ao * 100,), - "%.1f\\%%" % ((1 - ops_ao / ops_bo) * 100,), - "%.1f\\%%" % ((1 - guards_ao / guards_bo) * 100,), + "%.1f\\%%" % perc_guards_ao, + "%.1f\\%%" % (opt_rate,), + "%.1f\\%%" % (guard_opt_rate,), ] table.append(res) + mark_min_max(table, mins, maxs, 1) output = render_table(template, head, sorted(table)) write_table(output, texfile) @@ -254,15 +292,25 @@ r'Backend map', #r'Relation', ] + mins = [(99999, 0)] * (len(head) - 1) + maxs = [(0, 0)] * (len(head) - 1) table = [] # collect data - for bench in lines: + for i, bench in enumerate(lines): name = bench['bench'] bench['bench'] = bench['bench'].replace('_', '\\_') gmsize = float(bench['guard map size']) asmsize = float(bench['asm size']) rdsize = float(resumedata[name]['total resume data size']) + mins[0] = min(mins[0], (asmsize, i)) + maxs[0] = max(maxs[0], (asmsize, i)) + + mins[1] = min(mins[1], (rdsize, i)) + maxs[1] = max(maxs[1], (rdsize, i)) + + mins[2] = min(mins[2], (gmsize, i)) + maxs[2] = max(maxs[2], (gmsize, i)) table.append([ r"%s" % bench['bench'], r"%.1f {\scriptsize KiB}" % (asmsize,), @@ -270,6 +318,7 @@ r"%.1f {\scriptsize KiB}" % (gmsize,), #rel, ]) + mark_min_max(table, mins, maxs, 1) output = render_table(template, head, sorted(table)) write_table(output, texfile) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit