[llvm] r308537 - [opt-viewer] Print allocated memory per remark in opt-stats.py

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 19 15:04:58 PDT 2017


Author: anemet
Date: Wed Jul 19 15:04:58 2017
New Revision: 308537

URL: http://llvm.org/viewvc/llvm-project?rev=308537&view=rev
Log:
[opt-viewer] Print allocated memory per remark in opt-stats.py

If heapy is installed print the "average" in-memory remark size.  This is
estimated by dividing the total heap size by the number of unique remarks.

Modified:
    llvm/trunk/tools/opt-viewer/opt-stats.py

Modified: llvm/trunk/tools/opt-viewer/opt-stats.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt-viewer/opt-stats.py?rev=308537&r1=308536&r2=308537&view=diff
==============================================================================
--- llvm/trunk/tools/opt-viewer/opt-stats.py (original)
+++ llvm/trunk/tools/opt-viewer/opt-stats.py Wed Jul 19 15:04:58 2017
@@ -13,6 +13,13 @@ import operator
 from collections import defaultdict
 from multiprocessing import cpu_count, Pool
 
+try:
+    from guppy import hpy
+    hp = hpy()
+except ImportError:
+    print("Memory consumption not shown because guppy is not installed")
+    hp = None
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(description=desc)
     parser.add_argument(
@@ -53,7 +60,12 @@ if __name__ == '__main__':
         byname[r.Pass + "/" + r.Name] += 1
 
     total = len(all_remarks)
-    print("{:24s} {:10d}\n".format("Total number of remarks", total))
+    print("{:24s} {:10d}".format("Total number of remarks", total))
+    if hp:
+        h = hp.heap()
+        print("{:24s} {:10d}".format("Memory per remark",
+                                     h.size / len(all_remarks)))
+    print('\n')
 
     print("Top 10 remarks by pass:")
     for (passname, count) in sorted(bypass.items(), key=operator.itemgetter(1),




More information about the llvm-commits mailing list