Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve performance of finding indexables #2082

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Commits on May 23, 2024

  1. Improve performance of finding indexables

    Currently, all folders and files in the current tree are turned into
    IndexablePath, and then excluded files are filtered out after.
    
    When there are large file trees that are meant to be excluded, this
    results in a lot of unnecessary work.
    
    ActiveStorage stores files in the `tmp` directory in many many small
    folders. So does Bootsnap. Ruby LSP has to traverse all of these files,
    even though the entire directory should just be ignored.
    
    Rubocop has solved this by breaking the `includes` patterns up into many
    patterns, applying the exclusions *before* the `Dir.glob`, so I followed
    in their footsteps. This works great for exclusions that end in "**/*".
    We still need to loop through all IndexablePath objects and see if
    they're excluded, in the case that an extension was provided on the
    excluded path, but this can cut down load time dramatically.
    
    Before this PR in my Rails app, `indexables` took 76 seconds to run. Now
    it takes, 0.17 seconds. Before and after code both return the same exact
    file list.
    natematykiewicz committed May 23, 2024
    Configuration menu
    Copy the full SHA
    460e046 View commit details
    Browse the repository at this point in the history

Commits on May 30, 2024

  1. Configuration menu
    Copy the full SHA
    244d64d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4c0029a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b6abcc5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    228b84f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    68bb453 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2024

  1. Move line back

    natematykiewicz committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    1651c8a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a29ec54 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3a8c7fe View commit details
    Browse the repository at this point in the history