Quoting Ian Romanick (2018-01-16 09:39:07) > On 01/12/2018 12:23 PM, Dylan Baker wrote: > > Quoting Ian Romanick (2018-01-12 12:06:59) > >> From: Ian Romanick <[email protected]> > >> > >> This is useful for preparing data to go in a Mesa commit message. > >> > >> Signed-off-by: Ian Romanick <[email protected]> > >> --- > >> report.py | 53 +++++++++++++++++++++++++++++++---------------------- > >> 1 file changed, 31 insertions(+), 22 deletions(-) > >> > >> diff --git a/report.py b/report.py > >> index e0068bc..72752c1 100755 > >> --- a/report.py > >> +++ b/report.py > >> @@ -62,6 +62,8 @@ def main(): > >> help="comma-separated list of measurements to > >> report") > >> parser.add_argument("--summary-only", "-s", action="store_true", > >> default=False, > >> help="do not show the per-shader helped / hurt > >> data") > >> + parser.add_argument("--changes-only", "-c", action="store_true", > >> default=False, > >> + help="only show measurements that have changes") > >> parser.add_argument("before", type=get_results, help="the output of > >> the original code") > >> parser.add_argument("after", type=get_results, help="the output of > >> the new code") > >> args = parser.parse_args() > >> @@ -116,14 +118,14 @@ def main(): > >> if len(helped) > 0: > >> print("") > >> > >> - hurt.sort( > >> - key=lambda k: args.after[k][m] if args.before[k][m] > >> == 0 else float(args.after[k][m] - args.before[k][m]) / args.before[k][m]) > >> - for p in hurt: > >> - namestr = p[0] + " " + p[1] > >> - print(m + " HURT: " + get_result_string( > >> - namestr, args.before[p][m], args.after[p][m])) > >> - if len(hurt) > 0: > >> - print("") > >> + hurt.sort( > >> + key=lambda k: args.after[k][m] if args.before[k][m] == 0 > >> else float(args.after[k][m] - args.before[k][m]) / args.before[k][m]) > >> + for p in hurt: > >> + namestr = p[0] + " " + p[1] > >> + print(m + " HURT: " + get_result_string( > >> + namestr, args.before[p][m], args.after[p][m])) > >> + if len(hurt) > 0: > >> + print("") > >> > >> num_helped[m] = len(helped) > >> num_hurt[m] = len(hurt) > >> @@ -153,21 +155,28 @@ def main(): > >> if len(gained) > 0: > >> print("") > >> > >> + any_helped_or_hurt = False > >> for m in args.measurements: > >> - print("total {0} in shared programs: {1}\n" > >> - "{0} in affected programs: {2}\n" > >> - "helped: {3}\n" > >> - "HURT: {4}\n".format( > >> - m, > >> - change(total_before[m], total_after[m]), > >> - change(affected_before[m], affected_after[m]), > >> - num_helped[m], > >> - num_hurt[m])) > >> - > >> - > >> - print("LOST: " + str(len(lost))) > >> - print("GAINED: " + str(len(gained))) > >> - > >> + if num_helped[m] > 0 or num_hurt[m] > 0: > >> + any_helped_or_hurt = True > >> + > >> + if num_helped[m] > 0 or num_hurt[m] > 0 or not args.changes_only: > > > > Couldn't this be: `if any_helped_or_hurt or not args.changes_only:` > > Yes. I added any_helped_or_hurt long after writing this particular > if-statement, and I didn't notice the easy refactor. :) > > >> + print("total {0} in shared programs: {1}\n" > >> + "{0} in affected programs: {2}\n" > >> + "helped: {3}\n" > >> + "HURT: {4}\n".format( > >> + m, > >> + change(total_before[m], total_after[m]), > >> + change(affected_before[m], affected_after[m]), > >> + num_helped[m], > >> + num_hurt[m])) > >> + > >> + if len(lost) > 0 or len(gained) > 0 or not args.changes_only: > > > > Don't use len() for checking if a list has members: > > `if lost or gained or not args.changes_only:` > > Oh interesting. There are a few other places in report.py that use 'if > len(x) != 0', so I'll change those too.
Thanks! It's a lot faster to do `if x` than `if len(x) != 0` in python, since
CPython doesn't do a lot of optimizations for less than optimal code.
>
> >> + print("LOST: " + str(len(lost)))
> >> + print("GAINED: " + str(len(gained)))
> >> +
> >> + if args.changes_only and len(lost) == 0 and len(gained) == 0 and not
> >> any_helped_or_hurt:
> >
> > same here:
> > `if args.changes_only and not lost and not gained and not
> > any_helped_or_hurt`:
> >
> >> + print("No changes.")
> >>
> >> if __name__ == "__main__":
> >> main()
> >> --
> >> 2.9.5
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> [email protected]
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
