aui-framework / aui-framework/aui

Significant performance regression of signal-slot in heavily multithreaded context

Open
#511 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.