[all-commits] [llvm/llvm-project] a57296: [lldb] Create dependent modules in parallel (#114507)

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Mon Nov 4 13:32:46 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a57296ad411a75c1376458f6b09cb75128c6e785
      https://github.com/llvm/llvm-project/commit/a57296ad411a75c1376458f6b09cb75128c6e785
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-11-04 (Mon, 04 Nov 2024)

  Changed paths:
    M lldb/source/Target/Target.cpp

  Log Message:
  -----------
  [lldb] Create dependent modules in parallel (#114507)

Create dependent modules in parallel in Target::SetExecutableModule.
This change was inspired by #110646 which takes the same approach when
attaching. Jason suggested we could use the same approach when you
create a target in LLDB.

I used Slack for benchmarking, which loads 902 images.

```
Benchmark 1: ./bin/lldb /Applications/Slack.app/Contents/MacOS/Slack
  Time (mean ± σ):      1.225 s ±  0.003 s    [User: 3.977 s, System: 1.521 s]
  Range (min … max):    1.220 s …  1.229 s    10 runs

Benchmark 2: ./bin/lldb /Applications/Slack.app/Contents/MacOS/Slack
  Time (mean ± σ):      3.253 s ±  0.037 s    [User: 3.013 s, System: 0.248 s]
  Range (min … max):    3.211 s …  3.310 s    10 runs
```

We see about a 2x speedup, which matches what Jason saw for the attach
scenario. I also ran this under TSan to confirm this doesn't introduce
any races or deadlocks.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list