Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Files
Files
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 432
    • Issues 432
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 25
    • Merge Requests 25
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • FilesFiles
  • Issues
  • #1731

Closed
Open
Opened Jan 07, 2021 by Jeff Fortin Tam@jfft

Use a timer-based search activation algorithm to prevent Nautilus spamming its search engines (improve live filtering search-as-you-type performance)

Similar to what I'm recommending in gedit at gedit#398 and elsewhere...

Unless I am mistaken (based on my observations of the floating statusbar, and some very light peeking at Nautilus' files in gitlab), it seems that everytime I type a character, Nautilus immediately triggers a search query (to tracker or whatever search engine is available to it) without any delay to see if I will type more characters... and that's terrible for performance. It does too much work, at the wrong time (see @federico's timeless performance optimization presentations/principles).

I suspect Nautilus could get much better performance by using a timer-based search approach with just a tiny amount of delay, with logarithmic back off (ex: the first 2-3 characters have a longer timer than the 10th or 15th, for example), to avoid spamming your search engines. This is what I did in Pitivi years ago and it made a huge impact on performance, and I will ensure this sort of optimization is done in GTG as well. See https://github.com/getting-things-gnome/gtg/issues/281 as I go into a more detail over there regarding the ideas of how this can work. It's not yet implemented in GTG, but I've demonstrated that it makes a huge difference in performance over there too.

Please consider this potential performance optimization for Nautilus as well :)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: GNOME/nautilus#1731