diff --git a/tools/idf_size.py b/tools/idf_size.py index 47b9205945..71a86cf422 100755 --- a/tools/idf_size.py +++ b/tools/idf_size.py @@ -1023,7 +1023,10 @@ def get_detailed_sizes(sections: Dict, key: str, header: str, output_format: str def _get_header_format_diff(disp_list: List=display_name_list, columns: bool=False, output_format: str='') -> str: if output_format == 'csv': - return '{},' * len(disp_list) + '{}' + os.linesep + if columns: + return '{},' * len(disp_list) + '{}' + os.linesep + # This makes sure that every archive in the header has 3 columns (curr, reference and diff) + return '{},,,' * len(disp_list) + '{}' + os.linesep if columns: len_list = (24, ) + (7, ) * 3 * len(disp_list) return '|'.join(['{:>%d}' % x for x in len_list]) + os.linesep @@ -1035,16 +1038,21 @@ def get_detailed_sizes(sections: Dict, key: str, header: str, output_format: str header_format = _get_header_format_diff(columns=False, output_format=output_format) output = header_format.format(header, *disp_list) - f_print = ('-' * 23, '') * len(key_list) - f_print = f_print[0:len(key_list)] - header_line = header_format.format('', *f_print) - - header_format = _get_header_format_diff(columns=True, output_format=output_format) - f_print = ('', '', '-') * len(key_list) - - output += header_format.format('', *f_print) if output_format != 'csv': + f_print = ('-' * 23, '') * len(key_list) + f_print = f_print[0:len(key_list)] + header_line = header_format.format('', *f_print) + header_format = _get_header_format_diff(columns=True, output_format=output_format) + f_print = ('', '', '-') * len(key_list) + output += header_format.format('', *f_print) output += header_line + line_format = header_format + else: + header_format = _get_header_format_diff(columns=True, output_format=output_format) + # When formatting with CSV we have 3 entries per key (curr, reference and diff) + f_print = ('', '', '-') * len(key_list) * 3 + output += header_format.format('', *f_print) + line_format = '{},' * len(disp_list) * 3 + '{}' + os.linesep for key, data_info in curr.items(): try: @@ -1063,14 +1071,14 @@ def get_detailed_sizes(sections: Dict, key: str, header: str, output_format: str a = section_dict.get(name, 0) b = section_dict_ref.get(name, 0) diff = a - b - # the sign is added here and not in header_format in order to be able to print empty strings + # the sign is added here and not in line_format in order to be able to print empty strings return (a or '', b or '', '' if diff == 0 else '{:+}'.format(diff)) x = [] # type: List[str] for section in key_list: x.extend(_get_items(section)) - output += header_format.format(key[:24], *(x)) + output += line_format.format(key[:24], *(x)) return output diff --git a/tools/test_idf_size/expected_output b/tools/test_idf_size/expected_output index f524c20905..ae33a89937 100644 --- a/tools/test_idf_size/expected_output +++ b/tools/test_idf_size/expected_output @@ -20103,26 +20103,26 @@ Used Flash size ,186524 bytes,99551,+86973, .rodata,39580 bytes,22360,+17220, Total image size,234780 bytes (.bin may be padded larger),147087,+87693, Per-archive contributions to ELF file: -Archive File,DRAM .data,& 0.bss,IRAM0 .text,& 0.vectors,ram_st_total,Flash .text,& .rodata,flash_total +Archive File,,,DRAM .data,,,& 0.bss,,,IRAM0 .text,,,& 0.vectors,,,ram_st_total,,,Flash .text,,,& .rodata,,,flash_total ,,,-,,,-,, -libc.a,,364,-364,,,,, -libesp32.a,2635,2118,+517,2375,81,+2294,7758,5462 -libfreertos.a,4156,4140,+16,832,792,+40,12428,12459 -libspi_flash.a,36,779,-743,359,294,+65,7004,4896 -libsoc.a,660,208,+452,8,4,+4,3887,6790 -libheap.a,1331,304,+1027,4,4,,4376,3129 -libgcc.a,4,,+4,20,,+20,104, -libvfs.a,232,308,-76,103,48,+55,, -libnewlib.a,152,152,,272,272,,853,820 -libpthread.a,16,8,+8,12,12,,174, -libdriver.a,40,112,-72,20,20,,, -liblog.a,8,8,,268,272,-4,456,222 -libapp_update.a,,,,,4,-4,,109 -libhal.a,,,,,,,515,447 -libmain.a,,,,,,,, -libcxx.a,,,,,,,, -libbootloader_support.a,,,,,,,,1028 -libwpa_supplicant.a,,,,,,,, +libc.a,,364,-364,,,,,,,,,,,364,-364,55583,54704,+879,3709,3703,+6,59292,58771,+521 +libesp32.a,2635,2118,+517,2375,81,+2294,7758,5462,+2296,,,,12768,7661,+5107,4814,4511,+303,8133,2751,+5382,23340,14842,+8498 +libfreertos.a,4156,4140,+16,832,792,+40,12428,12459,-31,425,425,,17841,17816,+25,,,,1545,1451,+94,18554,18475,+79 +libspi_flash.a,36,779,-743,359,294,+65,7004,4896,+2108,,,,7399,5969,+1430,886,1135,-249,1624,1412,+212,9550,8222,+1328 +libsoc.a,660,208,+452,8,4,+4,3887,6790,-2903,,,,4555,7002,-2447,,1763,-1763,3456,1956,+1500,8003,10717,-2714 +libheap.a,1331,304,+1027,4,4,,4376,3129,+1247,,,,5711,3437,+2274,1218,884,+334,980,741,+239,7905,5058,+2847 +libgcc.a,4,,+4,20,,+20,104,,+104,,,,128,,+128,5488,,+5488,888,160,+728,6484,160,+6324 +libvfs.a,232,308,-76,103,48,+55,,,,,,,335,356,-21,3770,5650,-1880,403,915,-512,4405,6873,-2468 +libnewlib.a,152,152,,272,272,,853,820,+33,,,,1277,1244,+33,803,868,-65,86,84,+2,1894,1924,-30 +libpthread.a,16,8,+8,12,12,,174,,+174,,,,202,20,+182,774,264,+510,638,,+638,1602,272,+1330 +libdriver.a,40,112,-72,20,20,,,,,,,,60,132,-72,961,4272,-3311,537,1910,-1373,1538,6294,-4756 +liblog.a,8,8,,268,272,-4,456,222,+234,,,,732,502,+230,396,484,-88,166,147,+19,1026,861,+165 +libapp_update.a,,,,,4,-4,,109,-109,,,,,113,-113,123,159,-36,717,470,+247,840,738,+102 +libhal.a,,,,,,,515,447,+68,,,,515,447,+68,,,,32,32,,547,479,+68 +libmain.a,,,,,,,,,,,,,,,,53,72,-19,10,39,-29,63,111,-48 +libcxx.a,,,,,,,,,,,,,,,,11,11,,,,,11,11, +libbootloader_support.a,,,,,,,,1028,-1028,,,,,1028,-1028,,565,-565,,20,-20,,1613,-1613 +libwpa_supplicant.a,,,,,,,,,,,,,,,,,,,,,,,, The following entries are present in only: Archive File,DRAM .data,& 0.bss,IRAM0 .text,& 0.vectors,ram_st_total,Flash .text,& .rodata liblwip.a,14,3751,0,0,3765,66978,13936 @@ -20168,47 +20168,47 @@ Used Flash size ,186524 bytes,99551,+86973, .rodata,39580 bytes,22360,+17220, Total image size,234780 bytes (.bin may be padded larger),147087,+87693, Per-file contributions to ELF file: -Object File,DRAM .data,& 0.bss,IRAM0 .text,& 0.vectors,ram_st_total,Flash .text,& .rodata,flash_total +Object File,,,DRAM .data,,,& 0.bss,,,IRAM0 .text,,,& 0.vectors,,,ram_st_total,,,Flash .text,,,& .rodata,,,flash_total ,,,-,,,-,, -lib_a-vfprintf.o,,,,,,,, -lib_a-svfprintf.o,,,,,,,, -lib_a-svfiprintf.o,,,,,,,, -lib_a-vfiprintf.o,,,,,,,, -lib_a-dtoa.o,,,,,,,, -lib_a-mprec.o,,,,,,,, -lib_a-fseeko.o,,,,,,,, -windowspill_asm.o,,,,,,,311,315 -lib_a-reent.o,,,,,,,, -lib_a-fopen.o,,,,,,,, -lib_a-puts.o,,,,,,,, -lib_a-assert.o,,,,,,,, -lib_a-flags.o,,,,,,,, -lib_a-printf.o,,,,,,,, -lib_a-s_frexp.o,,,,,,,, -lib_a-vprintf.o,,,,,,,, -lib_a-fiprintf.o,,,,,,,, -state_asm--restore_extra,,,,,,,62,62 -state_asm--save_extra_nw,,,,,,,62,62 -lib_a-fseek.o,,,,,,,, -_divdi3.o,,,,,,,, -_moddi3.o,,,,,,,, -_udivdi3.o,,,,,,,, -_umoddi3.o,,,,,,,, -interrupts--intlevel.o,,,,,,,, -lib_a-errno.o,,,,,,,, -int_asm--set_intclear.o,,,,,,,8,8 -lib_a-fputs.o,,,,,,,, -lib_a-snprintf.o,,,,,,,, -lib_a-strerror.o,,,,,,,, -lib_a-sysgettod.o,,,,,,,, -lib_a-u_strerr.o,,,,,,,, -_addsubdf3.o,,,,,,,, -_cmpdf2.o,,,,,,,, -_divdf3.o,,,,,,,, -_fixdfsi.o,,,,,,,, -_floatsidf.o,,,,,,,, -_muldf3.o,,,,,,,, -_popcountsi2.o,,,,,,,, +lib_a-vfprintf.o,,,,,,,,,,,,,,,,14193,13681,+512,704,700,+4,14897,14381,+516 +lib_a-svfprintf.o,,,,,,,,,,,,,,,,13834,13290,+544,756,752,+4,14590,14042,+548 +lib_a-svfiprintf.o,,,,,,,,,,,,,,,,9642,9623,+19,1176,1172,+4,10818,10795,+23 +lib_a-vfiprintf.o,,,,,,,,,,,,,,,,9933,9933,,704,700,+4,10637,10633,+4 +lib_a-dtoa.o,,,,,,,,,,,,,,,,3522,3524,-2,13,13,,3535,3537,-2 +lib_a-mprec.o,,,,,,,,,,,,,,,,2134,2140,-6,296,296,,2430,2436,-6 +lib_a-fseeko.o,,,,,,,,,,,,,,,,862,918,-56,,,,862,918,-56 +windowspill_asm.o,,,,,,,311,315,-4,,,,311,315,-4,,,,,,,311,315,-4 +lib_a-reent.o,,,,,,,,,,,,,,,,232,236,-4,,,,232,236,-4 +lib_a-fopen.o,,,,,,,,,,,,,,,,228,244,-16,,,,228,244,-16 +lib_a-puts.o,,,,,,,,,,,,,,,,182,234,-52,,,,182,234,-52 +lib_a-assert.o,,,,,,,,,,,,,,,,68,68,,60,60,,128,128, +lib_a-flags.o,,,,,,,,,,,,,,,,127,128,-1,,,,127,128,-1 +lib_a-printf.o,,,,,,,,,,,,,,,,116,,+116,,,,116,,+116 +lib_a-s_frexp.o,,,,,,,,,,,,,,,,110,100,+10,,,,110,100,+10 +lib_a-vprintf.o,,,,,,,,,,,,,,,,94,94,,,,,94,94, +lib_a-fiprintf.o,,,,,,,,,,,,,,,,84,84,,,,,84,84, +state_asm--restore_extra,,,,,,,62,62,,,,,62,62,,,,,,,,62,62, +state_asm--save_extra_nw,,,,,,,62,62,,,,,62,62,,,,,,,,62,62, +lib_a-fseek.o,,,,,,,,,,,,,,,,45,45,,,,,45,45, +_divdi3.o,,,,,,,,,,,,,,,,,,,40,40,,40,40, +_moddi3.o,,,,,,,,,,,,,,,,,,,40,40,,40,40, +_udivdi3.o,,,,,,,,,,,,,,,,,,,40,40,,40,40, +_umoddi3.o,,,,,,,,,,,,,,,,,,,40,40,,40,40, +interrupts--intlevel.o,,,,,,,,,,,,,,,,,,,32,32,,32,32, +lib_a-errno.o,,,,,,,,,,,,,,,,10,10,,,,,10,10, +int_asm--set_intclear.o,,,,,,,8,8,,,,,8,8,,,,,,,,8,8, +lib_a-fputs.o,,,,,,,,,,,,,,,,,,,,,,,, +lib_a-snprintf.o,,,,,,,,,,,,,,,,,217,-217,,,,,217,-217 +lib_a-strerror.o,,,,,,,,,,,,,,,,,,,,,,,, +lib_a-sysgettod.o,,,,,,,,,,,,,,,,,,,,,,,, +lib_a-u_strerr.o,,,,,,,,,,,,,,,,,,,,,,,, +_addsubdf3.o,,,,,,,,,,,,,,,,,,,,,,,, +_cmpdf2.o,,,,,,,,,,,,,,,,,,,,,,,, +_divdf3.o,,,,,,,,,,,,,,,,,,,,,,,, +_fixdfsi.o,,,,,,,,,,,,,,,,,,,,,,,, +_floatsidf.o,,,,,,,,,,,,,,,,,,,,,,,, +_muldf3.o,,,,,,,,,,,,,,,,,,,,,,,, +_popcountsi2.o,,,,,,,,,,,,,,,,,,,,,,,, The following entries are present in only: Object File,DRAM .data,& 0.bss,IRAM0 .text,& 0.vectors,ram_st_total,Flash .text,& .rodata tcp_in.o,0,54,0,0,54,8127,916