bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/30725] severe objdump performance regression


From: Stromeko at nexgo dot de
Subject: [Bug binutils/30725] severe objdump performance regression
Date: Thu, 17 Aug 2023 18:14:24 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=30725

--- Comment #3 from Achim <Stromeko at nexgo dot de> ---
No, the debuginfod is not enabled and the option has no effect other than a
warning about E being an unrecognized debug letter option.

Again, both extracting the line number information from the DWARF5 section and
the disassembly alone doesn't produce anthing that looks unusual in terms of
runtime.  Disassembly runtime scales almost lineraly with amount of I/O, DWARF5
record extraction (which must do a fair bit of interpretation of the records I
assume rather seems to scale roughly linearly by number of records.

objdump 2.41-3 -d -l
gcc-ar.exe         0.031u 0.062s  0:00.08 112.5% 0+0k 0+0io  3332pf+0w
gcc-ranlib.exe     0.031u 0.000s  0:00.06  50.0% 0+0k 0+0io  3332pf+0w
gcc-nm.exe         0.046u 0.015s  0:00.07  71.4% 0+0k 0+0io  3344pf+0w
gcov-dump.exe      2.125u 0.046s  0:02.24  96.4% 0+0k 0+0io  4695pf+0w
gcov.exe           2.765u 0.000s  0:02.97  92.9% 0+0k 0+0io  7077pf+0w
collect2.exe       2.953u 0.000s  0:03.26  90.4% 0+0k 0+0io  4746pf+0w
gcov-tool.exe      3.078u 0.031s  0:03.09 100.3% 0+0k 0+0io  4714pf+0w
gnatkr.exe         4.218u 0.030s  0:04.31  98.3% 0+0k 0+0io  8583pf+0w
gnatlink.exe       4.374u 0.000s  0:04.49  97.3% 0+0k 0+0io  9394pf+0w
gnat.exe           4.406u 0.015s  0:04.54  97.1% 0+0k 0+0io  8995pf+0w
lto-wrapper.exe    4.718u 0.015s  0:04.96  95.1% 0+0k 0+0io  6682pf+0w
gnatfind.exe       4.859u 0.046s  0:05.09  96.0% 0+0k 0+0io 10604pf+0w
gnatxref.exe       4.984u 0.031s  0:05.32  94.1% 0+0k 0+0io 10596pf+0w
gnatchop.exe       5.125u 0.030s  0:05.22  98.6% 0+0k 0+0io 10846pf+0w
gnatclean.exe      5.828u 0.031s  0:06.14  95.2% 0+0k 0+0io 14015pf+0w
gnatname.exe       5.968u 0.061s  0:06.18  97.4% 0+0k 0+0io 13581pf+0w
gnatprep.exe       6.093u 0.000s  0:06.19  98.3% 0+0k 0+0io 14091pf+0w
gnatls.exe         6.187u 0.000s  0:06.39  96.7% 0+0k 0+0io 14690pf+0w
gnatmake.exe       6.281u 0.031s  0:06.76  93.3% 0+0k 0+0io 15692pf+0w
gfortran.exe       6.593u 0.015s  0:06.98  94.5% 0+0k 0+0io  6736pf+0w
cpp.exe            6.703u 0.000s  0:06.97  96.1% 0+0k 0+0io  6731pf+0w
gdc.exe            7.000u 0.030s  0:07.00 100.4% 0+0k 0+0io  6735pf+0w
gnatbind.exe      13.406u 0.000s  0:13.88  96.5% 0+0k 0+0io  7892pf+0w
lto-dump.exe    1764.452u 7.656s 32:35.54  90.6% 0+0k 0+0io 34002pf+0w
lto1.exe        1799.812u 7.406s 33:06.78  90.9% 0+0k 0+0io 34351pf+0w
f951.exe        2075.375u 6.562s 37:54.62  91.5% 0+0k 0+0io 35373pf+0w
cc1.exe         2105.890u 7.593s 38:24.45  91.7% 0+0k 0+0io 34919pf+0w
gnat1.exe       2281.406u 6.656s 41:16.20  92.4% 0+0k 0+0io 36665pf+0w
d21.exe         2320.968u 8.031s 42:03.11  92.3% 0+0k 0+0io 36393pf+0w
cc1plus.exe     2322.546u 7.812s 42:01.87  92.4% 0+0k 0+0io 37496pf+0w
cc1objplus.exe  2398.765u 7.859s 43:19.73  92.5% 0+0k 0+0io 37661pf+0w

objdump 2.41-3 -d
gcc-ar.exe         0.015u 0.000s 0:00.03  33.3%  0+0k 0+0io  3388pf+0w     5523
gcc-ranlib.exe     0.015u 0.015s 0:00.03  66.6%  0+0k 0+0io  3387pf+0w     5523
gcc-nm.exe         0.031u 0.015s 0:00.03 133.3%  0+0k 0+0io  3389pf+0w     5523
gcov-dump.exe      0.484u 0.000s 0:00.60  80.0%  0+0k 0+0io  3966pf+0w   143895
collect2.exe       0.546u 0.000s 0:00.68  79.4%  0+0k 0+0io  4012pf+0w   160080
gcov-tool.exe      0.546u 0.000s 0:00.62  87.0%  0+0k 0+0io  3997pf+0w   150923
cpp.exe            0.703u 0.015s 0:01.02  69.6%  0+0k 0+0io  4494pf+0w   241130
lto-wrapper.exe    0.796u 0.000s 0:00.89  88.7%  0+0k 0+0io  4426pf+0w   218062
gfortran.exe       0.875u 0.062s 0:00.98  94.8%  0+0k 0+0io  4487pf+0w   241676
gcov.exe           0.890u 0.015s 0:00.89 101.1%  0+0k 0+0io  4780pf+0w   218018
gdc.exe            0.921u 0.015s 0:00.98  94.8%  0+0k 0+0io  4488pf+0w   241859
gnatkr.exe         0.936u 0.000s 0:01.00  93.0%  0+0k 0+0io  4638pf+0w   244411
gnat.exe           0.953u 0.015s 0:01.03  93.2%  0+0k 0+0io  4694pf+0w   259251
gnatlink.exe       1.015u 0.030s 0:01.11  93.6%  0+0k 0+0io  4759pf+0w   274573
gnatxref.exe       1.187u 0.030s 0:01.30  93.0%  0+0k 0+0io  4866pf+0w   328849
gnatfind.exe       1.218u 0.015s 0:01.27  96.0%  0+0k 0+0io  4871pf+0w   329068
gnatchop.exe       1.437u 0.000s 0:01.33 107.5%  0+0k 0+0io  4894pf+0w   334560
gnatprep.exe       1.625u 0.015s 0:01.83  89.0%  0+0k 0+0io  5393pf+0w   467170
gnatclean.exe      1.703u 0.015s 0:01.82  93.9%  0+0k 0+0io  5389pf+0w   464192
gnatname.exe       1.718u 0.031s 0:01.76  98.8%  0+0k 0+0io  5325pf+0w   447727
gnatls.exe         1.843u 0.000s 0:01.96  93.8%  0+0k 0+0io  5473pf+0w   491418
gnatbind.exe       1.984u 0.015s 0:02.23  89.2%  0+0k 0+0io  5506pf+0w   563078
gnatmake.exe       2.046u 0.015s 0:02.09  98.0%  0+0k 0+0io  5585pf+0w   447727
lto-dump.exe      15.359u 0.015s 0:16.16  95.0%  0+0k 0+0io 30823pf+0w  6836384
lto1.exe          15.390u 0.046s 0:16.41  94.0%  0+0k 0+0io 30811pf+0w  6836218
cc1.exe           16.562u 0.078s 0:17.90  92.9%  0+0k 0+0io 31598pf+0w  7102189
d21.exe           17.265u 0.156s 0:18.38  94.7%  0+0k 0+0io 32801pf+0w  7303055
f951.exe          17.312u 0.078s 0:18.33  94.8%  0+0k 0+0io 31843pf+0w  7332302
cc1objplus.exe    18.218u 0.046s 0:19.45  93.8%  0+0k 0+0io 33912pf+0w  7739494
gnat1.exe         18.968u 0.156s 0:19.92  95.9%  0+0k 0+0io 33564pf+0w  8221327
cc1plus.exe       19.812u 0.062s 0:21.03  94.4%  0+0k 0+0io 33728pf+0w  7102189

objdump 2.41-3 -WNl
gcc-ar.exe         0.000u 0.000s 0:00.01   0.0%   0+0k 0+0io  3354pf+0w    1257
gcc-nm.exe         0.000u 0.000s 0:00.01   0.0%   0+0k 0+0io  3342pf+0w    1257
gcc-ranlib.exe     0.000u 0.000s 0:00.01   0.0%   0+0k 0+0io  3355pf+0w    1257
collect2.exe       0.031u 0.000s 0:00.09  33.3%   0+0k 0+0io  3834pf+0w   34420
gdc.exe            0.031u 0.031s 0:00.20  30.0%   0+0k 0+0io  4259pf+0w   83717
d21.exe            0.062u 0.015s 0:00.28  25.0%   0+0k 0+0io 25490pf+0w   85911
cc1.exe            0.078u 0.093s 0:00.27  59.2%   0+0k 0+0io 24512pf+0w   83717
gcov.exe           0.078u 0.000s 0:00.19  36.8%   0+0k 0+0io  4587pf+0w   85686
gcov-tool.exe      0.078u 0.000s 0:00.10  70.0%   0+0k 0+0io  3831pf+0w   34317
gnat1.exe          0.078u 0.031s 0:00.31  32.2%   0+0k 0+0io 25521pf+0w   89938
gfortran.exe       0.093u 0.000s 0:00.20  45.0%   0+0k 0+0io  4253pf+0w   83717
gcov-dump.exe      0.109u 0.000s 0:00.08 125.0%   0+0k 0+0io  3796pf+0w   34317
cpp.exe            0.125u 0.000s 0:00.19  63.1%   0+0k 0+0io  4259pf+0w   83717
f951.exe           0.125u 0.062s 0:00.30  60.0%   0+0k 0+0io 24530pf+0w   85911
lto1.exe           0.125u 0.046s 0:00.25  64.0%   0+0k 0+0io 23996pf+0w   85911
lto-dump.exe       0.140u 0.046s 0:00.25  72.0%   0+0k 0+0io 24005pf+0w   85911
lto-wrapper.exe    0.140u 0.000s 0:00.18  77.7%   0+0k 0+0io  4212pf+0w   83717
gnat.exe           0.187u 0.000s 0:00.41  43.9%   0+0k 0+0io  4489pf+0w  174350
gnatbind.exe       0.218u 0.000s 0:00.20 105.0%   0+0k 0+0io  4987pf+0w   87641
gnatxref.exe       0.296u 0.031s 0:00.46  69.5%   0+0k 0+0io  4619pf+0w  245773
gnatchop.exe       0.328u 0.015s 0:00.58  56.8%   0+0k 0+0io  4660pf+0w  252902
gnatlink.exe       0.328u 0.000s 0:00.44  72.7%   0+0k 0+0io  4543pf+0w  195741
gnatprep.exe       0.359u 0.015s 0:00.66  54.5%   0+0k 0+0io  5072pf+0w  412973
gnatkr.exe         0.375u 0.000s 0:00.37 100.0%   0+0k 0+0io  4424pf+0w  159885
gnatname.exe       0.390u 0.000s 0:00.65  60.0%   0+0k 0+0io  5010pf+0w  387875
gnatfind.exe       0.546u 0.015s 0:00.55 100.0%   0+0k 0+0io  4619pf+0w  245898
gnatls.exe         0.640u 0.000s 0:00.74  86.4%   0+0k 0+0io  5135pf+0w  439869
gnatclean.exe      0.656u 0.000s 0:00.79  82.2%   0+0k 0+0io  5065pf+0w  408163
gnatmake.exe       0.671u 0.000s 0:00.79  84.8%   0+0k 0+0io  5225pf+0w  485037

dwarf-parse.pl (includes exec of objdump -WNl)
gcc-ar.exe         0.000u 0.045s 0:00.06  66.6%   0+0k 0+0io  7054pf+0w  LNS:  
1 (  12 locations) <=> FNT:   4 (  78 locations)
gcc-ranlib.exe     0.000u 0.000s 0:00.07   0.0%   0+0k 0+0io  7054pf+0w  LNS:  
1 (  12 locations) <=> FNT:   4 (  78 locations)
gcc-nm.exe         0.030u 0.030s 0:00.07  85.7%   0+0k 0+0io  7064pf+0w  LNS:  
1 (  12 locations) <=> FNT:   4 (  78 locations)
collect2.exe       0.031u 0.000s 0:00.14  21.4%   0+0k 0+0io  7570pf+0w  LNS: 
37 ( 306 locations) <=> FNT:  63 ( 400 locations)
cc1obj.exe         0.108u 0.015s 0:00.33  33.3%   0+0k 0+0io 28363pf+0w  LNS: 
68 (5021 locations) <=> FNT: 116 ( 766 locations)
gcov-dump.exe      0.124u 0.046s 0:00.13 123.0%   0+0k 0+0io  7528pf+0w  LNS: 
37 ( 305 locations) <=> FNT:  63 ( 390 locations)
gcov-tool.exe      0.155u 0.015s 0:00.13 123.0%   0+0k 0+0io  7566pf+0w  LNS: 
37 ( 305 locations) <=> FNT:  63 ( 390 locations)
cpp.exe            0.186u 0.030s 0:00.25  84.0%   0+0k 0+0io  7992pf+0w  LNS: 
63 (5007 locations) <=> FNT: 108 ( 751 locations)
cc1.exe            0.202u 0.062s 0:00.31  83.8%   0+0k 0+0io 28257pf+0w  LNS: 
68 (5021 locations) <=> FNT: 116 ( 766 locations)
lto-dump.exe       0.218u 0.046s 0:00.35  71.4%   0+0k 0+0io 27743pf+0w  LNS: 
68 (5021 locations) <=> FNT: 116 ( 766 locations)
lto-wrapper.exe    0.218u 0.030s 0:00.27  88.8%   0+0k 0+0io  7942pf+0w  LNS: 
63 (5007 locations) <=> FNT: 108 ( 751 locations)
gnatbind.exe       0.233u 0.045s 0:00.27 100.0%   0+0k 0+0io  8715pf+0w  LNS: 
74 (5037 locations) <=> FNT: 133 ( 777 locations)
f951.exe           0.249u 0.108s 0:00.34 100.0%   0+0k 0+0io 28267pf+0w  LNS: 
68 (5021 locations) <=> FNT: 116 ( 766 locations)
lto1.exe           0.264u 0.061s 0:00.34  94.1%   0+0k 0+0io 27728pf+0w  LNS: 
68 (5021 locations) <=> FNT: 116 ( 766 locations)
gcov.exe           0.265u 0.015s 0:00.26 103.8%   0+0k 0+0io  8318pf+0w  LNS: 
65 (5015 locations) <=> FNT: 110 ( 749 locations)
gdc.exe            0.311u 0.015s 0:00.24 133.3%   0+0k 0+0io  7993pf+0w  LNS: 
63 (5007 locations) <=> FNT: 108 ( 751 locations)
gfortran.exe       0.311u 0.015s 0:00.26 123.0%   0+0k 0+0io  7991pf+0w  LNS: 
63 (5007 locations) <=> FNT: 108 ( 751 locations)
d21.exe            0.312u 0.093s 0:00.35 114.2%   0+0k 0+0io 29228pf+0w  LNS: 
68 (5021 locations) <=> FNT: 116 ( 766 locations)
gnat1.exe          0.312u 0.078s 0:00.36 105.5%   0+0k 0+0io 29251pf+0w  LNS: 
78 (5052 locations) <=> FNT: 140 ( 802 locations)
cc1plus.exe        0.358u 0.015s 0:00.40  90.0%   0+0k 0+0io 29830pf+0w  LNS: 
72 (7067 locations) <=> FNT: 121 ( 860 locations)
cc1objplus.exe     0.421u 0.077s 0:00.39 125.6%   0+0k 0+0io 29966pf+0w  LNS: 
72 (7067 locations) <=> FNT: 121 ( 860 locations)
gnatkr.exe         0.468u 0.030s 0:00.47 104.2%   0+0k 0+0io  8174pf+0w  LNS:
102 (5941 locations) <=> FNT: 184 (1352 locations)
gnatxref.exe       0.514u 0.030s 0:00.59  91.5%   0+0k 0+0io  8371pf+0w  LNS:
112 (6607 locations) <=> FNT: 210 (1796 locations)
gnat.exe           0.530u 0.076s 0:00.44 136.3%   0+0k 0+0io  8248pf+0w  LNS:
106 (6167 locations) <=> FNT: 192 (1496 locations)
gnatlink.exe       0.609u 0.015s 0:00.54 112.9%   0+0k 0+0io  8291pf+0w  LNS:
128 (6460 locations) <=> FNT: 229 (1459 locations)
gnatname.exe       0.624u 0.015s 0:00.81  77.7%   0+0k 0+0io  8765pf+0w  LNS:
136 (7349 locations) <=> FNT: 247 (2003 locations)
gnatfind.exe       0.687u 0.030s 0:00.66 107.5%   0+0k 0+0io  8372pf+0w  LNS:
113 (6614 locations) <=> FNT: 211 (1801 locations)
gnatchop.exe       0.780u 0.046s 0:00.65 126.1%   0+0k 0+0io  8405pf+0w  LNS:
110 (6582 locations) <=> FNT: 203 (1855 locations)
gnatls.exe         0.780u 0.030s 0:00.92  88.0%   0+0k 0+0io  8906pf+0w  LNS:
152 (7619 locations) <=> FNT: 264 (2176 locations)
gnatmake.exe       0.812u 0.031s 0:00.94  89.3%   0+0k 0+0io  8983pf+0w  LNS:
187 (7980 locations) <=> FNT: 326 (2417 locations)
gnatprep.exe       0.812u 0.076s 0:00.81 108.6%   0+0k 0+0io  8829pf+0w  LNS:
145 (7427 locations) <=> FNT: 257 (2098 locations)
gnatclean.exe      1.046u 0.045s 0:00.97 111.3%   0+0k 0+0io  8826pf+0w  LNS:
139 (7352 locations) <=> FNT: 247 (2033 locations)

Looking at the ratio of "objdump -dl" vs. "dwarf-parse.pl" should make it clear
that size or IO alone (in whatever metric) isn't what's driving the runtime
explosion.  It however looks like there's some way of arranging the information
so that there's roughly a LNS pre-factor on the complexity, i.e. the program
seems to do the same work again and again for each LNS (but not always).

| Objectfile      |     user |   sys |      tot |  user |   sys |   tot | 
ratio |  LNS |  FNT |
|-----------------+----------+-------+----------+-------+-------+-------+--------+------+------|
| gcc-ranlib.exe  |    0.031 | 0.000 |    0.031 | 0.030 | 0.000 | 0.030 |   
1.0 |   12 |   78 |
| gcc-nm.exe      |    0.046 | 0.015 |    0.061 | 0.030 | 0.030 | 0.060 |   
1.0 |   12 |   78 |
| gcc-ar.exe      |    0.031 | 0.062 |    0.093 | 0.000 | 0.045 | 0.045 |   
2.1 |   12 |   78 |
| gcov-dump.exe   |    2.125 | 0.046 |    2.171 | 0.124 | 0.046 | 0.170 |  
12.8 |  305 |  390 |
| gcov.exe        |    2.765 | 0.000 |    2.765 | 0.265 | 0.015 | 0.280 |   
9.9 | 5015 |  749 |
| collect2.exe    |    2.953 | 0.000 |    2.953 | 0.031 | 0.000 | 0.031 |  
95.3 |  306 |  400 |
| gcov-tool.exe   |    3.078 | 0.031 |    3.109 | 0.155 | 0.015 | 0.170 |  
18.3 |  305 |  390 |
| gnatkr.exe      |    4.218 | 0.030 |    4.248 | 0.468 | 0.030 | 0.498 |   
8.5 | 5941 | 1352 |
| gnatlink.exe    |    4.374 | 0.000 |    4.374 | 0.609 | 0.015 | 0.624 |   
7.0 | 6460 | 1459 |
| gnat.exe        |    4.406 | 0.015 |    4.421 | 0.530 | 0.076 | 0.606 |   
7.3 | 6167 | 1496 |
| lto-wrapper.exe |    4.718 | 0.015 |    4.733 | 0.218 | 0.030 | 0.248 |  
19.1 | 5007 |  751 |
| gnatfind.exe    |    4.859 | 0.046 |    4.905 | 0.687 | 0.030 | 0.717 |   
6.8 | 6614 | 1801 |
| gnatxref.exe    |    4.984 | 0.031 |    5.015 | 0.514 | 0.030 | 0.544 |   
9.2 | 6607 | 1796 |
| gnatchop.exe    |    5.125 | 0.030 |    5.155 | 0.780 | 0.046 | 0.826 |   
6.2 | 6582 | 1855 |
| gnatclean.exe   |    5.828 | 0.031 |    5.859 | 1.046 | 0.045 | 1.091 |   
5.4 | 7352 | 2033 |
| gnatname.exe    |    5.968 | 0.061 |    6.029 | 0.624 | 0.015 | 0.639 |   
9.4 | 7349 | 2003 |
| gnatprep.exe    |    6.093 | 0.000 |    6.093 | 0.812 | 0.076 | 0.888 |   
6.9 | 7427 | 2098 |
| gnatls.exe      |    6.187 | 0.000 |    6.187 | 0.780 | 0.030 | 0.810 |   
7.6 | 7619 | 2176 |
| gnatmake.exe    |    6.281 | 0.031 |    6.312 | 0.812 | 0.031 | 0.843 |   
7.5 | 7980 | 2417 |
| gfortran.exe    |    6.593 | 0.015 |    6.608 | 0.311 | 0.015 | 0.326 |  
20.3 | 5007 |  751 |
| cpp.exe         |    6.703 | 0.000 |    6.703 | 0.186 | 0.030 | 0.216 |  
31.0 | 5007 |  751 |
| gdc.exe         |    7.000 | 0.030 |    7.030 | 0.311 | 0.015 | 0.326 |  
21.6 | 5007 |  751 |
| gnatbind.exe    |   13.406 | 0.000 |   13.406 | 0.233 | 0.045 | 0.278 |  
48.2 | 5037 |  777 |
| lto-dump.exe    | 1764.452 | 7.656 | 1772.108 | 0.218 | 0.046 | 0.264 |
6712.5 | 5021 |  766 |
| lto1.exe        | 1799.812 | 7.406 | 1807.218 | 0.264 | 0.061 | 0.325 |
5560.7 | 5021 |  766 |
| f951.exe        | 2075.375 | 6.562 | 2081.937 | 0.249 | 0.108 | 0.357 |
5831.8 | 5021 |  766 |
| cc1.exe         | 2105.890 | 7.593 | 2113.483 | 0.202 | 0.062 | 0.264 |
8005.6 | 5021 |  766 |
| gnat1.exe       | 2281.406 | 6.656 | 2288.062 | 0.312 | 0.078 | 0.390 |
5866.8 | 5052 |  802 |
| d21.exe         | 2320.968 | 8.031 | 2328.999 | 0.312 | 0.093 | 0.405 |
5750.6 | 5021 |  766 |
| cc1plus.exe     | 2322.546 | 7.812 | 2330.358 | 0.358 | 0.015 | 0.373 |
6247.6 | 7067 |  860 |
| cc1objplus.exe  | 2398.765 | 7.859 | 2406.624 | 0.421 | 0.077 | 0.498 |
4832.6 | 7067 |  860 |

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]