-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Load files into the VFS in parallel on startup #17373
Comments
For some additional context from Zulip, the current single-threaded loading behavior is especially problematic on EdenFS, which really wants tooling to send as many IO requests as possible in parallel. |
I did some rough, back-of-napkin benchmarking on this: rust-analyzer spends 5 seconds waiting on What makes this fix a little more complicated is that during project loading, there isn't a clear end-state: rust-analyzer just sorta repeatedly calls |
internal: Load VFS config changes in parallel Simple attempt to make some progress f or #17373 No clue if those atomic orderings are right, though I don't think they are really too relevant either. A more complete fix would probably need to replace our `ProjectFolders` handling a bit.
internal: Load VFS config changes in parallel Simple attempt to make some progress f or rust-lang/rust-analyzer#17373 No clue if those atomic orderings are right, though I don't think they are really too relevant either. A more complete fix would probably need to replace our `ProjectFolders` handling a bit.
Is this done via #17771 or needs extra works? I think that we are still loading project root files on startup in a single thread but I haven't tested yet whether it take much time or not. |
Yes we still need to do the initial loading in parallel |
We currently load them from a single thread which can make startup very slow for bigger projects as we re-query the project layout over and over again until all files are loaded (this is a separate issue that we should fix, that is wait with that until all files are loaded into memory).
The text was updated successfully, but these errors were encountered: