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

minpac#update()に時間がかかる #10

Closed
rapan931 opened this issue Apr 10, 2017 · 6 comments
Closed

minpac#update()に時間がかかる #10

rapan931 opened this issue Apr 10, 2017 · 6 comments

Comments

@rapan931
Copy link

rapan931 commented Apr 10, 2017

日本語で失礼します。

再現環境

Windows 10

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 13 2016 09:58:24)
MS-Windows 64 ビット コンソール 版
適用済パッチ: 1-3

再現方法

※minpac(727d0cf)を取得しておきます。

vimrcに以下を記載

set packpath^=$VIM\.vim

packadd minpac
call minpac#init({'package_name': 'm', 'verbose': 1, 'jobs': 8})

call minpac#add('k-takata/minpac', {'frozen': 1})
call minpac#add('kana/vim-textobj-user')
call minpac#add('sgur/vim-textobj-parameter')
call minpac#add('thinca/vim-textobj-between')
call minpac#add('glts/vim-textobj-comment')
call minpac#add('kana/vim-textobj-line')

vimを起動し、以下を実行します。

echomsg strftime('%H:%M:%S') | call minpac#update() | echomsg strftime('%H:%M:%S')

結果は以下となり、時間がかかってしまいます。

13:26:24
Already up-to-date: vim-textobj-between
Already up-to-date: vim-textobj-user
Already up-to-date: vim-textobj-line
Skipped: minpac
Already up-to-date: vim-textobj-parameter
13:28:00
Already up-to-date: vim-textobj-comment
All plugins are up to date.

少し古いminpac(02b6415)で実行した結果を以下に記載します。
こちらは高速でした。

13:36:27
Updating vim-textobj-between
Updating vim-textobj-user
Updating vim-textobj-line
Updating vim-textobj-parameter
Skipping minpac
Updating vim-textobj-comment
13:36:27

流れていくるmessageの順番的に最新版ではマルチスレッドになっていないような気がします。
neovim対応のどこかでこのようになってしまったと思うのですが、原因が分かりません。
(もしくはminpac#init()時のオプション不足かもしれません。)

お手数をおかけしますが、ご確認をお願いいたします。

@rapan931 rapan931 changed the title minpac#update()ga minpac#update()に時間がかかる Apr 10, 2017
@k-takata
Copy link
Owner

Vimのバージョンはいくつでしょうか。OSはWindowsでしょうか。

@rapan931
Copy link
Author

すみません。一度作成途中でissueを登録してしまったため、再現方法等記載したコメントを編集して記載しておりますので、再度ご確認をお願いいたします。

こちらにも記載しますが、
osはWindows10,
vimは以下になります。
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 13 2016 09:58:24)
MS-Windows 64 ビット コンソール 版
適用済パッチ: 1-3

@k-takata
Copy link
Owner

Vim 8の初期の頃の版にはJob/Channel周りで結構不具合がありました。Vim 8.0.0003 ということは(本家のインストーラ版だと思いますが)、かなり古いので、更新すると改善すると思います。
関連しそうなパッチとしては 8.0.0050 があります。本家のインストーラは 8.0.0069 になっていますので、まずはそれを試してみてください。(脆弱性の修正(8.0.0056)も含まれていますので、更新を強く推奨します。)
それでも改善しない場合は、Nightly buildの最新版を試してみてください。
https://github.com/vim/vim-win32-installer/releases

なお今回の件とは無関係ですが、'k-takata/minpac' の行は、

call minpac#add('k-takata/minpac', {'type': 'opt'})

としておいてください。minpacは、packadd minpac で読み込めるようにするため {'type': 'opt'} をつけておく必要があります。(面倒なので何とかしたいところではありますが…。)

@rapan931
Copy link
Author

rapan931 commented Apr 10, 2017

回答ありがとうございます。

kaoriya版vimをいつも使用しているので、kaoriya版の最新で確認しました。

:version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan  1 2017 13:47:23)
MS-Windows 64 ビット コンソール 版
適用済パッチ: 1-134
Modified by koron.kaoriya@gmail.com
Compiled by koron.kaoriya@gmail.com

k-takataさんがおっしゃる通り、最新版では高速にupdateできることが確認できました。
お騒がせしました。一応結果を↓に記載しておきます。

:messages

18:47:21
Skipped: minpac
18:47:21
Already up-to-date: vim-textobj-parameter
Already up-to-date: vim-textobj-user
Already up-to-date: vim-textobj-between
Already up-to-date: vim-textobj-line
Already up-to-date: vim-textobj-comment
All plugins are up to date.

本issueは解決しましたので、closeします。ありがとうございました。

なお今回の件とは無関係ですが、 'k-takata/minpac' の行は、

(情報ありがとうございます。こちら設定修正して、これからも使わせていただきます。)

k-takata added a commit that referenced this issue Apr 10, 2017
As reported in #10 (Japanese), `call minpac#update()` is very slow on
very old version of Vim 8.  Vim 8.0.0050 (maybe) or later is required.
@k-takata
Copy link
Owner

ドキュメントに 8.0.0050 以降が必要な旨記載しました。

(情報ありがとうございます。こちら設定修正して、これからも使わせていただきます。)

余計な 'start/minpac' ディレクトリができていると思いますので、削除しておいてください。
minpac を最新版に更新し、Vimを再起動してから、call minpac#clean() を実行すると、簡単に削除できます。

@rapan931
Copy link
Author

ドキュメントに 8.0.0050 以降が必要な旨記載しました。

確認しました。追記ありがとうございます。

minpac を最新版に更新し、Vimを再起動してから、 call minpac#clean() を実行すると、簡単に削除できます。

minpac#clean()使ったことなかったですが、これ便利ですね。。。
情報ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants