public inbox for dwz@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/25291] New: create_import_tree phase 2 slowness
@ 2019-01-01  0:00 vries at gcc dot gnu.org
  2019-01-01  0:00 ` [Bug default/25291] " vries at gcc dot gnu.org
  2021-03-03  9:12 ` vries at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

            Bug ID: 25291
           Summary: create_import_tree phase 2 slowness
           Product: dwz
           Version: unspecified
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: default
          Assignee: nobody at sourceware dot org
          Reporter: vries at gcc dot gnu.org
                CC: dwz at sourceware dot org
  Target Milestone: ---

With the odr patches series, but with odr disabled we have for the clang-10
benchmark:
...
$ dwz clang-10.debug -o 1 -lnone -Lnone --devel-progress --no-odr
read_debug_info .debug_info
user: 59.70
sys : 3.29
partition_dups
user: 1.20
sys : 0.01
partition_dups qsort
user: 1.64
sys : 0.00
partition_dups after qsort
user: 1.64
sys : 0.35
create_import_tree phase 1
user: 0.44
sys : 0.01
create_import_tree phase 2
user: 1.35
sys : 0.00
create_import_tree phase 3
user: 1.26
sys : 0.00
create_import_tree phase 4 (create partial units)
user: 0.24
sys : 0.02
read_debug_info .debug_types
user: 1.36
sys : 0.00
compute_abbrevs
user: 37.41
sys : 0.31
write_abbrev
user: 0.09
sys : 0.00
write_info
user: 12.48
sys : 0.86
write_loc
user: 3.63
sys : 8.69
write_types
user: 0.00
sys : 0.00
write_gdb_index
user: 0.17
sys : 0.28
write_dso
user: 0.18
sys : 2.32
...

And with --odr --odr-mode=basic:
...
$ dwz clang-10.debug -o 1 -lnone -Lnone --devel-progress --odr --odr-mode=basic
read_debug_info .debug_info
user: 46.39
sys : 3.36
partition_dups
user: 2.14
sys : 0.01
partition_dups split_dups
user: 99.34
sys : 0.51
partition_dups qsort
user: 4.82
sys : 0.00
partition_dups after qsort
user: 3.76
sys : 0.23
create_import_tree phase 1
user: 1.02
sys : 0.02
create_import_tree phase 2
user: 48.87
sys : 0.00
create_import_tree phase 3
user: 11.73
sys : 0.00
create_import_tree phase 4 (create partial units)
user: 2.78
sys : 0.05
read_debug_info .debug_types
user: 1.40
sys : 0.00
compute_abbrevs
user: 46.84
sys : 0.35
write_abbrev
user: 0.08
sys : 0.00
write_info
user: 8.48
sys : 0.97
write_loc
user: 0.82
sys : 0.58
write_types
user: 0.00
sys : 0.00
write_gdb_index
user: 0.21
sys : 0.48
write_dso
user: 0.07
sys : 1.34
...

The largest addition in time is the odr phase split_dups, which is a known
issue.

But the second largest addition is in create_import_tree phase 2, from 1.35s to
48.87. It would be good to understand how this increase happens, and if we can
reduce it.

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug default/25291] create_import_tree phase 2 slowness
  2019-01-01  0:00 [Bug default/25291] New: create_import_tree phase 2 slowness vries at gcc dot gnu.org
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  2021-03-03  9:12 ` vries at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
If we print some statistic about the size of the problem, we have:

with --no-odr:
...
create_import_tree bipartite graph: CUs: 1555, PUs: 11734, edges: 901797
...
and with --odr --odr-mode=basic:
...
create_import_tree bipartite graph: CUs: 1555, PUs: 55385, edges: 2245216
...

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug default/25291] create_import_tree phase 2 slowness
  2019-01-01  0:00 [Bug default/25291] New: create_import_tree phase 2 slowness vries at gcc dot gnu.org
  2019-01-01  0:00 ` [Bug default/25291] " vries at gcc dot gnu.org
@ 2021-03-03  9:12 ` vries at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: vries at gcc dot gnu.org @ 2021-03-03  9:12 UTC (permalink / raw)
  To: dwz

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

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
The most pragmatic way to handle this is --devel-gen-cu --devel-uni-lang. Less
imports generated, less scope for create_import_tree.

Consider f.i. this log file for file debug/Checker.so.debug:
...
+ ../measure/time.sh ./dwz debug/Checker.so.debug -o debug/Checker.so.debug.0.z
-lnone -Lnone --no-odr
maxmem: 5913264
real: 70.78
user: 65.74
system: 5.01
+ ../measure/time.sh ./dwz debug/Checker.so.debug -o debug/Checker.so.debug.1.z
-lnone -Lnone --odr --odr-mode=link
maxmem: 6091880
real: 104.91
user: 100.47
system: 4.39
+ ../measure/time.sh ./dwz debug/Checker.so.debug -o debug/Checker.so.debug.2.z
-lnone -Lnone --odr --odr-mode=link --devel-uni-lang --devel-gen-cu
maxmem: 6069780
real: 83.50
user: 79.32
system: 4.17
+ ../measure/diff.sh debug/Checker.so.debug debug/Checker.so.debug.0.z
.debug_info      red: .01%      542547271  542518778
.debug_abbrev    red: .11%      5277543  5271927
.debug_str       red: 0%        63361040  63361040
total            red: .01%      611185854 611151745
+ ../measure/diff.sh debug/Checker.so.debug debug/Checker.so.debug.1.z
.debug_info      red: 32.82%    542547271  364493736
.debug_abbrev    red: -9.44%    5277543  5775931
.debug_str       red: 0%        63361040  63361040
total            red: 29.06%    611185854 433630707
+ ../measure/diff.sh debug/Checker.so.debug debug/Checker.so.debug.2.z
.debug_info      red: 33.00%    542547271  363553611
.debug_abbrev    red: -9.12%    5277543  5759093
.debug_str       red: 0%        63361040  63361040
total            red: 29.21%    611185854 432673744
...

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-03  9:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-01  0:00 [Bug default/25291] New: create_import_tree phase 2 slowness vries at gcc dot gnu.org
2019-01-01  0:00 ` [Bug default/25291] " vries at gcc dot gnu.org
2021-03-03  9:12 ` vries at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).