diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /bin/find-most-repeated-functions.py | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'bin/find-most-repeated-functions.py')
-rwxr-xr-x | bin/find-most-repeated-functions.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bin/find-most-repeated-functions.py b/bin/find-most-repeated-functions.py new file mode 100755 index 000000000..767f80240 --- /dev/null +++ b/bin/find-most-repeated-functions.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# +# Find the top 100 functions that are repeated in multiple .o files, so we can out-of-line those +# +# + +import subprocess +from collections import defaultdict + +# the odd bash construction here is because some of the .o files returned by find are not object files +# and I don't want xargs to stop when it hits an error +a = subprocess.Popen("find instdir/program/ -name *.so | xargs echo nm --radix=d --size-sort --demangle | bash", stdout=subprocess.PIPE, shell=True) + +#xargs sh -c "somecommand || true" + +nameDict = defaultdict(int) +with a.stdout as txt: + for line in txt: + line = line.strip() + idx1 = line.find(" ") + idx2 = line.find(" ", idx1 + 1) + name = line[idx2:] + nameDict[name] += 1 + +sizeDict = defaultdict(set) +for k, v in nameDict.iteritems(): + sizeDict[v].add(k) + +cnt = 0 +for k in sorted(list(sizeDict), reverse=True): + print k + for v in sizeDict[k]: + print v + cnt += 1 + if cnt > 100 : break + +#first = sorted(list(sizeDict))[-1] +#print first + + +#include/vcl/ITiledRenderable.hxx +# why is gaLOKPointerMap declared inside this header? |