Vim プラグインをプロファイリングする方法はありますか?
大きなファイルを開くと、MacVim がどんどん遅くなります.py
。すべてのプラグインの選択を解除し、1 つずつ再選択して、どのプラグインが原因であるかを確認できることはわかっていますが、より速い方法はありますか?
私の dotvim はこちら: https://github.com/charlax/dotvim
Vim プラグインをプロファイリングする方法はありますか?
大きなファイルを開くと、MacVim がどんどん遅くなります.py
。すべてのプラグインの選択を解除し、1 つずつ再選択して、どのプラグインが原因であるかを確認できることはわかっていますが、より速い方法はありますか?
私の dotvim はこちら: https://github.com/charlax/dotvim
組み込みのプロファイリングサポートを使用できます:vimを起動した後
:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!
(終了noautocmd
は実際には必要ありませんが、vimの終了が速くなるだけです)。
注:vimが終了する前に削除された関数に関する情報は取得されません。
.vimrc の読み込み中に正確なタイミング メッセージを表示する、非常に役立つ別の vim ビルド メソッドを見つけました。
vim --startuptime timeCost.txt timeCost.txt
実行してください:
:help --startuptime
VIM で詳細情報を取得します。
プラグインまたは構文の強調表示である可能性があります。これが発生したときに a を試して、:syntax off
Vim がすぐに速くなるかどうかを確認してください。
プラグインの場合、「全体的な遅さ」は通常、自動コマンドが原因です。a:autocmd
はそれらをすべてリストします。経由でそれらのいくつかを殺すことによって調査し:autocmd! [group] {event}
ます。CursorMoved[I]
頻度の高いイベント (例 )から頻度の低いイベント (例)に進みBufWinEnter
ます。
速度低下をある程度確実に再現できる場合は、バイナリ検索が役立つ場合があります。ファイルの半分を に移動し~/.vim/plugin/
、残りのファイルを移動して、低速だったセットで繰り返します。
:profile
本当に内部を調べる必要がある場合は、コマンドが有効になっている Vim バージョンを入手してください。(通常の BIG Windows バージョンではありませんが、Cygwin に同梱されているバージョンにはそれがあります。また、ほとんどのディストリビューションでは自己コンパイルが非常に簡単です。)
-V
次のオプションで Vim を起動して、すべての Vim アクティビティをファイルに出力すると便利です。
vim -V12log
これにより、最大の冗長性 (レベル 12) が提供され、ファイルに出力されますlog
。次に、遅いとわかっているいくつかの Vim アクションを実行し、どの関数/マッピングが内部的に呼び出されているかを確認できます。