Use render caching on permissions UI table

Created on 6 January 2018, almost 7 years ago
Updated 23 January 2023, over 1 year ago

Problem/Motivation

The permissions table is really slow, especially on actual sites with a lot of modules, node types and so on. To the point of actually timing out.

Proposed resolution

By far the slowest part is converting the huge render array to a string, because our rendering with all those twig templates, cacheability metadata and so on is slow.

We can try the same approach as #2893117: Improve HTML caching of Simpletest UI test form β†’ and just put a render cache on the table.

This makes a huge difference already on a plain D8 site and I'd expect that the improvements will be even bigger on an actual site:

Remaining tasks

The problem is that this cache is now never invalidated. We can use a similar approach as in the simpletest issue and use a hash of the permissions as a cache context. But permissions currently have no persistent or static caching. See πŸ“Œ Static cache permissions Needs work .

Even without that, it's probably still a considerable improvement but would be even better with static caching.

User interface changes

API changes

Data model changes

πŸ“Œ Task
Status

Needs work

Version

10.1 ✨

Component
User moduleΒ  β†’

Last updated 3 days ago

Created by

πŸ‡¨πŸ‡­Switzerland berdir Switzerland

Live updates comments and jobs are added and updated live.
  • Performance

    It affects performance. It is often combined with the Needs profiling tag.

Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024