diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/bloat-o-meter | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter index e7e16b5..31364fe 100755 --- a/scripts/bloat-o-meter +++ b/scripts/bloat-o-meter @@ -20,6 +20,10 @@ def getsizes(file): if type in "tTdDbB": if "." in name: name = "static." + name.split(".")[0] sym[name] = sym.get(name, 0) + int(size, 16) + for l in os.popen("readelf -S " + file).readlines(): + x = l.split() + if len(x)<6 or x[1] != ".rodata": continue + sym[".rodata"] = int(x[5], 16) return sym old = getsizes(sys.argv[1]) @@ -52,12 +56,10 @@ for name in common: delta.sort() delta.reverse() -print "add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ - (add, remove, grow, shrink, up, -down, up-down) -print "%-40s %7s %7s %+7s" % ("function", "old", "new", "delta") +print "%-48s %7s %7s %+7s" % ("function", "old", "new", "delta") for d, n in delta: - if d: print "%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d) -print "----------------------------------------------------------------" -s=")" -if (up-down)>=0: s="(" -print "Result :-%s%+7d" % (s, up-down) + if d: print "%-48s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d) +print "-"*78 +total="(add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s)%%sTotal: %s bytes"\ + % (add, remove, grow, shrink, up, -down, up-down) +print total % (" "*(80-len(total))) |