Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3af06fd9 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Linus Torvalds
Browse files

scripts/bloat-o-meter: don't use readlines()

readlines() conses whole list before doing anything which is slower for
big object files.  Use per line iterator.

Speed up is ~2% on "allyesconfig" type of kernel.

    $ perf stat -r 16 taskset -c 15 ./scripts/bloat-o-meter ../vmlinux-000 ../obj/vmlinux >/dev/null
	...

  Before:  7.247708646 seconds time elapsed                ( +-  0.28% )
  After:   7.091202853 seconds time elapsed                ( +-  0.15% )

Link: http://lkml.kernel.org/r/20161119004143.GA1200@avx2


Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3fb4afd9
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -18,8 +18,9 @@ if len(sys.argv) != 3:

def getsizes(file):
    sym = {}
    for l in os.popen("nm --size-sort " + file).readlines():
        size, type, name = l[:-1].split()
    with os.popen("nm --size-sort " + file) as f:
        for line in f:
            size, type, name = line.split()
            if type in "tTdDbBrR":
                # strip generated symbols
                if name.startswith("__mod_"): continue