Skip to content

[#73847] Improve backlogs "Show x more items" frontend performance#22743

Merged
ulferts merged 1 commit intorelease/17.3from
bug/73847-improve-backlogs-show-x-more-items-frontend-performance
Apr 14, 2026
Merged

[#73847] Improve backlogs "Show x more items" frontend performance#22743
ulferts merged 1 commit intorelease/17.3from
bug/73847-improve-backlogs-show-x-more-items-frontend-performance

Conversation

@dombesz
Copy link
Copy Markdown
Contributor

@dombesz dombesz commented Apr 13, 2026

Ticket

https://community.openproject.org/wp/73847

What are you trying to accomplish?

Improve the performance of the "Show X more items" link.

What approach did you choose and why?

  • Remove the use of StoryController as outlets in the BacklogsController. Having a large number of stories used as outlet gives a high performance hit to the rendering. It takes up more than 2/3rd of the loading time.
  • Implement the same functionality only inside the StoryController.

In my local environment using 1000 work packages, the processing time is reduced from 24 seconds to 1.7 seconds..

Screenshots

Before:
image

After
image

Merge checklist

  • Added/updated tests
  • Added/updated documentation in Lookbook (patterns, previews, etc)
  • Tested major browsers (Chrome, Firefox, Edge, ...)

@github-actions
Copy link
Copy Markdown

Caution

The provided work package version does not match the core version

Details:

Please make sure that:

  • The work package version OR your pull request target branch is correct

@myabc myabc self-requested a review April 14, 2026 07:50
Copy link
Copy Markdown
Contributor

@myabc myabc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good code-wise. I haven't yet tested locally.

Copy link
Copy Markdown
Contributor

@ulferts ulferts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change looks good and solid. On my machine, with 1000 work packages rendered on clicking the loading button, the time spent in the front end drops from 6 seconds to 300ms which is quite substantial.

Regarding the architecture I wonder if using a custom event wouldn't be cleaner. The BacklogController would be remain responsible for listening in on turbo:visit and for determining the id of the displayed work package from the url. It could then send a custom event the StoryControllers listen to. But in the end, it is not really changing the number of listeners so I am undecided.

The main bottleneck now seems to be the frontend rendering. Out of the ~3 seconds it takes the backend to answer when the loading button is clicked, ~2.99 s is spent in the view. The data itself is loaded quickly although that could also be because of the simplified test data i created.

@ulferts ulferts merged commit 12e97c1 into release/17.3 Apr 14, 2026
16 checks passed
@ulferts ulferts deleted the bug/73847-improve-backlogs-show-x-more-items-frontend-performance branch April 14, 2026 08:33
@github-actions github-actions bot locked and limited conversation to collaborators Apr 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants