aui-framework / aui-framework/aui
Significant performance regression of signal-slot in heavily multithreaded context
- Dominant language
- C++
- Stars
- 598
- Forks
- 44
- Avg merge
- 17h 56m
- Merged PRs (30d)
- 3
Description
### What happened?
This is due to introduction of `AObjectBase::SIGNAL_SLOT_GLOBAL_SYNC`. If I comment out these locks, the regression dissapears.
### Relevant log output or stack trace
```shell
```
### Steps to reproduce
```bash
Spam AThreadPool with tasks which create AObjects, make connections and emit signals.
```
### Affected Platforms
_No response_
### Link to build, i.e. failing GitHub Action job (if any).
_No response_
Contributor guide
Research direction
Start by profiling the signal-slot path around AObjectBase::SIGNAL_SLOT_GLOBAL_SYNC while reproducing the AThreadPool workload that creates AObjects, connects them, and emits signals. Compare the locked and lock-disabled cases, then define done as eliminating or substantially reducing the measured regression without compromising thread safety.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100