Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • gnome-shell gnome-shell
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2,064
    • Issues 2,064
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 161
    • Merge requests 161
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • gnome-shellgnome-shell
  • Issues
  • #177
Closed
Open
Issue created Apr 05, 2018 by Philippe Troin@Fif

Gnome-shell disables and enables extension in sub-optimal manner (quadratically).

This is with gnome-shell 3.26.2 on Fedora 27 (gnome-shell-3.26.2-fc27.x86_64 When looking at the call graph from _onVersionValidationChanged(): it calls reloadExtension() on every extension reloadExtension() in turn calls unloadExtension() unloadExtension in turn calls disable() on every extension. Because of the two nested loops over the extension list, the first one in _onVersionValidationChanged and the other one in unloadExtension, all the extensions are enabled and disabled O(n2) times. If you have a lot of extensions, that makes:

  • login slow
  • screen lock and unlock slows
  • restarts slow

By changing the order in which _onVersionValidationChanged() disables and enables extensions, we can get back to linear time as the extensions are first disabled in reverse activation order, shunting the quadractic loop.

gnome-shell-3.26.2-extension-reload-order.patch

Edited Apr 05, 2018 by Philippe Troin
Assignee
Assign to
Time tracking