-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Windows] PlugUpdate seems to have become really slow #690
Comments
neovim :CheckHealth returns
|
#676 and #681 are merged so vim-plug runs most shell commands by writing it to a temporary batchfile and then executing it. This is for properly escaping some arguments and working around implementation differences between Vim and Neovim. fzf's Vim plugin and fzf.vim use the same strategy for Windows support but more robustly because the user can pass a list type, similar to jobstart, and each token is escaped for cmd.exe. cmd.exe is the only reliable shell on Windows because powershell is too slow and bash (without WSL) can mess up the command if it contains double quotes. The implementation can be improved but Vim and Neovim will be handled separately. |
I'm on macOS and it seems my setup is getting slow out of nowhere also. macOS 10.13.1 |
I am experiencing this too, plug update become really slow on Windows. Ubuntu is still rather fast. |
FYI, vim 8 has If the issue is Vim 8 I don't regularly upgrade my plugins so this is a low priority for me. Feel free to open a PR to tweak it for Neovim (nightly) if you're familiar with cmd.exe quirks. |
I had the same problem, but updating my Win10 install to the most recently available one seems to not have helped. I'm in the same boat though, that |
I assume you were using python/ruby before because this slowness is specific to GVim on Windows because If vim-plug is updated to not use batchfiles for nvim 0.3, |
#860 is merged which should speed up parallel install/update if using Vim 8 or Neovim regardless of the user's shell. If it's not fast enough, |
So gvim 8.1 - 302s Since I first ran gvim, it actually had to pull in updates to plugins. When neovim ran, everything was up to date Also, I'm now at only 44 plugins (compared to 53 of the initial report) |
I assume it increased because the temporary batchfiles increased in size to support utf-8 (same code from fzf Vim plugin, WIP) and the new shellescape code. Shellescape can be optimized similar to how vim-fugitive does it in https://github.com/tpope/vim-fugitive/blob/c63fd1b71be037d4fd583649303875ad0fd17b57/autoload/fugitive.vim#L51. I don't know how else to improve the performance with the Windows shell. @raghur Do you change your |
No I didn't. Should I? I did try |
It's fine. Default case (cmd.exe) hasn't improved 😞 . |
Is the performance better now? |
Unfortunately, no. I ran PlugUprade and then restarted and ran PlugUpdate |
Here goes with plug.vim from the PR. Btw, my config's reduced to 39 plugins now. I'm a little puzzled why I'm not seeing an improvement.
Re-running plugupdate with already updated plugins results in
|
@mattn Ping. |
@raghur Can you profile the vim-plug code? |
@raghur Generally, Windows external command execution is very slow. vim-plug runs a lot of git commands. Get the branch name, get the commit ID, get the remote. And fetch. My patch only makes some of these things faster. By the way, I'm using 38 plugins and PlugUpdate finishes in about 40 seconds. |
Yeah - I understand the why. I think my numbers might be something to do outside of Vim - likely antivirus/real time scanning etc. that I cannot disable (work m/c) |
Yeah - I know.. but when the slowdown was first noticed, even then the same antivirus/endpoint protection crap was active - so I reasoned that it wasn't a factor. Today as I was digging into this, I noticed that some processes of the antivirus suite are going up to 30% CPU :( - so maybe it is a factor. BTW, I tried profiling - |
:profile func |
With profiling turned on
and the profile:
|
Oh, git checkout is too slow in your environment. |
hmm - under WSL takes 26.92 seconds only. |
Closing an old issue. Please leave a comment if this still matters to you. |
I have 53 plugins. vim-plug used to update plugins decently quickly on windows (30s) earlier. on my linux desktop, this is closer to 10s. However, of late, it's started taking a really long time (~120s) and the update looks to be happening serially.
If I open task manager though - I see multiple copies of git.exe being spawned - so that doesn't look to be the issue.
This happens both under vim8 and neovim on windows.
For neovim, I have
*jobstart
, ruby and python3.For vim8, python3 and ruby are available.
I'm not quite sure what else to check - so is there anything else to get some diagnostics into where PlugUpdate is slowing down?
The text was updated successfully, but these errors were encountered: