Как узнать, какие плагины делают Vim медленным?



есть ли способ профилировать Плагины Vim?



мой MacVim становится все медленнее и медленнее, когда я открываю большой .py. Я знаю, что могу отменить выбор всех плагинов и повторно выбрать один за другим, чтобы проверить, какой плагин является виновником, но есть ли более быстрый способ?



мой dotvim здесь:https://github.com/charlax/dotvim

605   5  

5 ответов:

вы можете использовать встроенную поддержку профилирования: после запуска vim do

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

(в отличие от отказа noautocmd на самом деле не требуется, это просто делает Vim выйти быстрее).

Примечание: Вы не получите информацию о функциях, которые были удалены до выхода vim.

Я нашел еще один очень полезный метод Vim buildin, чтобы показать точное время сообщения При загрузке вашего .vimrc.

vim --startuptime timeCost.txt timeCost.txt

пожалуйста, запустите:

:help --startuptime

в VIM, чтобы получить дополнительную информацию.

это может быть плагин или подсветка синтаксиса; попробуйте :syntax off когда это произойдет и посмотреть, будет ли Vim мгновенно становится быстрее.

С помощью плагинов, "общей медлительности", как правило, исходит из автокоманды; а :autocmd перечисляет их все. Исследуйте, убивая некоторых из них через :autocmd! [group] {event}. Исходить из более частых событий (т. е. CursorMoved[I]) к менее частым (например BufWinEnter).

если вы можете несколько надежно воспроизвести медлительность, двоичный поиск может помочь: отодвинуть половину из файлов в ~/.vim/plugin/, затем другой, повторите в наборе, который был медленным.

Если вам действительно нужно заглянуть под капот, получите версию Vim, которая имеет включено. (Не ванильный большой версии Windows, но тот, который поставляется совместно с Cygwin был он; кроме того, самостоятельное составление достаточно легко в большинстве дистрибутивов.)

Я нашел полезным распечатать все действия Vim в файл, запустив Vim с помощью :

vim -V12log

Это обеспечивает максимальную детализацию (Уровень 12) и выводит его в файл log. Затем вы можете выполнить некоторые действия Vim, которые вы знаете, чтобы быть медленным, а затем посмотреть, какие функции/сопоставления вызываются внутренне.

если у вас возникли проблемы с операциями обновления экрана (^L, прокрутка и т. д.) будучи медленным, ваша проблема может быть неэффективным файлом подсветки синтаксиса. Вы можете проверить это, временно отключив подсветку синтаксиса (:syn off) и посмотреть, если проблема уходит; если вы хотите, чтобы копаться в деталях, вы можете профилировать текущий файл синтаксиса с помощью :syntime:

  1. откройте файл, который вызывает проблемы с производительностью подсветки синтаксиса.
  2. выполнить :syntime on начать профилирование.
  3. прокрутите файл немного.
  4. выполнить :syntime report создать отчет. Паттерны, перечисленные первыми в отчете, - это те, на обработку которых ушло больше всего времени.

Comments

    Ничего не найдено.