From 37d18f1d8a876864dc39e15d5548d335c12384c9 Mon Sep 17 00:00:00 2001 From: Adam Nemet Date: Wed, 19 Jul 2017 22:04:58 +0000 Subject: [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. llvm-svn: 308537 --- llvm/tools/opt-viewer/opt-stats.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'llvm/tools/opt-viewer/opt-stats.py') diff --git a/llvm/tools/opt-viewer/opt-stats.py b/llvm/tools/opt-viewer/opt-stats.py index 205b08ba8a7..8fa88cc510a 100755 --- a/llvm/tools/opt-viewer/opt-stats.py +++ b/llvm/tools/opt-viewer/opt-stats.py @@ -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), -- cgit v1.2.3