Skip to content

Commit 672f8b0

Browse files
committed
Merge branch 'feature/idf_size_sort_archives' into 'master'
Feature/idf size sort on size See merge request idf/esp-idf!1957
2 parents 30637c8 + c9e6ed7 commit 672f8b0

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

tools/idf_size.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import argparse, sys, subprocess, re
2424
import os.path
2525
import pprint
26+
import operator
2627

2728
DEFAULT_TOOLCHAIN_PREFIX = "xtensa-esp32-elf-"
2829

@@ -204,27 +205,30 @@ def print_detailed_sizes(sections, key, header):
204205
"& rodata",
205206
"Total")
206207
print("%24s %10s %6s %6s %10s %8s %7s" % headings)
207-
for k in sorted(sizes.keys()):
208+
result = {}
209+
for k in (sizes.keys()):
208210
v = sizes[k]
211+
result[k] = {}
212+
result[k]["data"] = v.get(".dram0.data", 0)
213+
result[k]["bss"] = v.get(".dram0.bss", 0)
214+
result[k]["iram"] = sum(t for (s,t) in v.items() if s.startswith(".iram0"))
215+
result[k]["flash_text"] = v.get(".flash.text", 0)
216+
result[k]["flash_rodata"] = v.get(".flash.rodata", 0)
217+
result[k]["total"] = sum(result[k].values())
218+
219+
def return_total_size(elem):
220+
val = elem[1]
221+
return val["total"]
222+
for k,v in sorted(result.items(), key=return_total_size, reverse=True):
209223
if ":" in k: # print subheadings for key of format archive:file
210224
sh,k = k.split(":")
211-
if sh != sub_heading:
212-
print(sh)
213-
sub_heading = sh
214-
215-
data = v.get(".dram0.data", 0)
216-
bss = v.get(".dram0.bss", 0)
217-
iram = sum(t for (s,t) in v.items() if s.startswith(".iram0"))
218-
flash_text = v.get(".flash.text", 0)
219-
flash_rodata = v.get(".flash.rodata", 0)
220-
total = data + bss + iram + flash_text + flash_rodata
221225
print("%24s %10d %6d %6d %10d %8d %7d" % (k[:24],
222-
data,
223-
bss,
224-
iram,
225-
flash_text,
226-
flash_rodata,
227-
total))
226+
v["data"],
227+
v["bss"],
228+
v["iram"],
229+
v["flash_text"],
230+
v["flash_rodata"],
231+
v["total"]))
228232

229233
if __name__ == "__main__":
230234
main()

0 commit comments

Comments
 (0)