Skip to content

Poor performance on assemblies admin page #11964

@fblupi

Description

@fblupi

Describe the bug

The assemblies admin page load doesn't scale properly when the number of assemblies in the organization increases. When the organization has more than 50 assemblies (it's not a huge number at all), the response time starts to become a problem.

I attach the mean response time for 50, 100, and 150 assemblies below (measured locally with an Apple Silicon M1 Max):

Number of assemblies Response time (ms)
50 4471
100 8210
150 12139

I detected the fall of performance comes from the method assembly_admin_allowed_assemblies in the Decidim::Assemblies::Permissions introduced with this PR: #8773

This poor performance was detected in Decidim Barcelona where they have almost 500 assemblies, and the admins get mad when they need to do something related to an assembly.

To Reproduce

  1. In a fresh installation of Decidim create a considerable number of assemblies (please, use a script instead of doing it manually)
  2. Go to /admin/assemblies and see how it takes too long to load the page.

Expected behavior

It shouldn't take too long to load a page where the content is being paginated.

Screenshots

Video showing the log while loading the page in an instance with 150 assemblies.

Screen.Recording.2023-11-07.at.10.08.08.mov

Stacktrace

No response

Extra data

  • Device: Desktop
  • Device OS: MacOS Sonoma 14.0
  • Browser: Safari 17.0
  • Decidim Version: 0.28.dev (detected on 0.27.4, it happened on 0.26.x too)
  • Decidim installation: Local (detected on Decidim Barcelona)

Additional context

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions