-
Notifications
You must be signed in to change notification settings - Fork 321
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
Loading files is very slow. #249
Comments
I wouldn't be opposed. I love speed. Most of the cost, however, is probably not in the scanner itself but in the calls to Vim's Also note that if you're running on a really huge directory you should probably just use the Watchman scanner, which will toast even a C implementation. (Watchman is itself written in C, maintains a persistent, up-to-date cache of file-system state, and the code in Command-T for talking to Watchman is already written in C, and talks to Watchman using an efficient binary protocol.) |
Awesome to know. I obviously can't promise more performance but I'm willing to dig in. I have been browsing the code and am suspicious of a couple of bits (including the expand) and I'll see what I can do about them, if anything.
Unfortunately this isn't possible for all my setups but it does sound like a nice solution :) |
One thing I just remembered: if you're doing anything major you should build on top of the I'd forgotten about this but, I landed 4b94a60 back in May which significantly speeds up the wildignore stuff anyway (for more context see 589f450). Anything you do on |
Thanks. That sounds like it could make a huge difference (mabye 10x based on my observations). I'm still working on a C scanner API which would allow reading and matching filelist without the data ever entering Ruby (just the results). It looks like it is going to have another 2-4x improvement. However that would have been almost in the noise if we still had to go to VIM to filter so these two together sound really promising. The original plan was to keep the current scanners "as is" for the time being but if the filter can be reduced to a regex it will be quite easy to pull that into C. |
I'm not a vim expert, but would the async feature of vim/neovim be helpful here. I.e. could you queue up a task to load files when the user opens vim so that it you don't have to wait? |
That would definitely possible but it would be orthogonal to this change. |
Ah I see. Nevermind me |
For that, see #220 |
Given the big rewrite for v6.0.x, I'm closing all older issues as there is unlikely to be anything significant happening on the Footnotes
|
Hello, I was loading a large directory and loading it took more then 10 minutes. I wasn't particularly surprised until I noticed that
find
orgit ls-files
took a small number of seconds to complete. It seems surprising to me that there is so much overhead.I assume that most of this can be eliminated by moving the scanner to C. Would you be opposed to a patch that allowed some scanners to be implemented in C? (Of course I would check that the performance is actually significantly improved)
The text was updated successfully, but these errors were encountered: