355

Vim プラグインをプロファイリングする方法はありますか?

大きなファイルを開くと、MacVim がどんどん遅くなります.py。すべてのプラグインの選択を解除し、1 つずつ再選択して、どのプラグインが原因であるかを確認できることはわかっていますが、より速い方法はありますか?

私の dotvim はこちら: https://github.com/charlax/dotvim

4

6 に答える 6

563

組み込みのプロファイリングサポートを使用できます:vimを起動した後

:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!

(終了noautocmdは実際には必要ありませんが、vimの終了が速くなるだけです)。

注:vimが終了する前に削除された関数に関する情報は取得されません。

于 2012-08-31T13:41:27.643 に答える
86

.vimrc の読み込み中に正確なタイミング メッセージを表示する、非常に役立つ別の vim ビルド メソッドを見つけました。

vim --startuptime timeCost.txt timeCost.txt

実行してください:

:help --startuptime

VIM で詳細情報を取得します。

于 2013-12-03T08:37:31.383 に答える
31

プラグインまたは構文の強調表示である可能性があります。これが発生したときに a を試して、:syntax offVim がすぐに速くなるかどうかを確認してください。

プラグインの場合、「全体的な遅さ」は通常、自動コマンドが原因です。a:autocmdはそれらをすべてリストします。経由でそれらのいくつかを殺すことによって調査し:autocmd! [group] {event}ます。CursorMoved[I]頻度の高いイベント (例 )から頻度の低いイベント (例)に進みBufWinEnterます。

速度低下をある程度確実に再現できる場合は、バイナリ検索が役立つ場合があります。ファイルの半分を に移動し~/.vim/plugin/、残りのファイルを移動して、低速だったセットで繰り返します。

:profile本当に内部を調べる必要がある場合は、コマンドが有効になっている Vim バージョンを入手してください。(通常の BIG Windows バージョンではありませんが、Cygwin に同梱されているバージョンにはそれがあります。また、ほとんどのディストリビューションでは自己コンパイルが非常に簡単です。)

于 2012-08-31T12:04:09.770 に答える
17

-V次のオプションで Vim を起動して、すべての Vim アクティビティをファイルに出力すると便利です。

vim -V12log

これにより、最大の冗長性 (レベル 12) が提供され、ファイルに出力されますlog。次に、遅いとわかっているいくつかの Vim アクションを実行し、どの関数/マッピングが内部的に呼び出されているかを確認できます。

于 2012-08-31T11:00:58.257 に答える