[Mesa-dev] [PATCH shader-db 2/5] nv-report: move code out of main()
Rhys Perry
pendingchaos02 at gmail.com
Fri Aug 3 19:53:40 UTC 2018
Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
---
nv-report.py | 49 +++++++++++++++++++++++++++++++++----------------
1 file changed, 33 insertions(+), 16 deletions(-)
diff --git a/nv-report.py b/nv-report.py
index 3f0be63557..487074fdd6 100644
--- a/nv-report.py
+++ b/nv-report.py
@@ -45,8 +45,14 @@ class Stats(object):
def record(self, name, stat):
assert name not in self.stats, name
self.stats[name] = stat
+
+ def create_totals(self):
for attr in STATS:
- setattr(self, attr, getattr(self, attr) + getattr(stat, attr))
+ setattr(self, attr, 0)
+
+ for key, stat in self.stats.iteritems():
+ for attr in STATS:
+ setattr(self, attr, getattr(self, attr) + getattr(stat, attr))
RE = {
"name": re.compile(r"^(.*) - "),
@@ -54,7 +60,7 @@ RE = {
for attr in ["type"] + STATS:
RE[attr] = re.compile(attr + ": (\d+)")
-def analyze(fname):
+def read_stats(fname):
stats = Stats()
with open(fname, "r") as f:
for line in f.xreadlines():
@@ -77,19 +83,19 @@ def diff(a, b):
percentage = float('inf')
return "%d -> %d (%.2f%%)" % (a, b, percentage)
-def main(argv):
- # Count up each of the metrics in the before and after, and
- # produce hurt/helped comparisons.
- before = analyze(argv[1])
- after = analyze(argv[2])
- keys = set(before.stats.keys()) | set(after.stats.keys())
+def print_summary(before, after):
+ before.create_totals()
+ after.create_totals()
+
+ print "total instructions in shared programs :", diff(before.inst, after.inst)
+ print "total gprs used in shared programs :", diff(before.gpr, after.gpr)
+ print "total shared used in shared programs :", diff(before.shared, after.shared)
+ print "total local used in shared programs :", diff(before.local, after.local)
+def print_helped_hurt(keys, before, after):
helped = Stat()
hurt = Stat()
for key in keys:
- if key not in after.stats or key not in before.stats:
- print "Missing", key
- continue
a = after.stats[key]
b = before.stats[key]
if a != b:
@@ -105,11 +111,6 @@ def main(argv):
setattr(hurt, attr,
getattr(hurt, attr) + 1)
- print "total instructions in shared programs :", diff(before.inst, after.inst)
- print "total gprs used in shared programs :", diff(before.gpr, after.gpr)
- print "total shared used in shared programs :", diff(before.shared, after.shared)
- print "total local used in shared programs :", diff(before.local, after.local)
- print
print ("%10s " * (len(STATS) + 1)) % tuple([""] + STATS)
print "%10s " % "helped",
for attr in STATS:
@@ -118,6 +119,22 @@ def main(argv):
print "%10s " % "hurt",
for attr in STATS:
print "%10d " % getattr(hurt, attr),
+ print
+
+def main(argv):
+ before = read_stats(argv[1])
+ after = read_stats(argv[2])
+
+ keys = set()
+ for key in set(before.stats.keys()) | set(after.stats.keys()):
+ if key not in after.stats or key not in before.stats:
+ print "Missing", key
+ continue
+ keys.add(key)
+
+ print_summary(before, after)
+ print
+ print_helped_hurt(keys, before, after)
if __name__ == "__main__":
--
2.14.4
More information about the mesa-dev
mailing list