[debugging] Vim을 느리게 만드는 플러그인을 확인하는 방법은 무엇입니까?

Vim 플러그인을 프로파일 링하는 방법이 있습니까?

큰 Mac을 열면 MacVim이 느려집니다 .py. 모든 플러그인을 선택 취소하고 하나씩 플러그인을 다시 선택하여 범인이 어떤 플러그인인지 확인할 수 있지만 더 빠른 방법이 있습니까?

내 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 buildin 메소드를 찾았습니다.

vim --startuptime timeCost.txt timeCost.txt

다음을 실행하십시오 :

:help --startuptime

VIM에서 더 많은 정보를 얻을 수 있습니다.


답변

플러그인 또는 구문 강조가 될 수 있습니다. :syntax off이런 일이 생기면 Vim이 더 빨리 빨라지는지 보십시오 .

플러그인의 경우 “일반적인 속도 저하”는 일반적으로 자동 명령에서 비롯됩니다. 는 :autocmd그들 모두를 나열합니다. 를 통해 그들 중 일부를 죽여 조사하십시오 :autocmd! [group] {event}. 보다 빈번한 이벤트 (예 :)에서 CursorMoved[I]덜 빈번한 이벤트 (예 :)로 진행하십시오 BufWinEnter.

속도를 다소 안정적으로 재현 할 수 있으면 이진 검색이 도움이 될 수 있습니다.에서 파일의 절반을 이동 ~/.vim/plugin/한 다음 다른 파일 은 느린 세트에서 반복하십시오.

실제로 후드를 살펴 보려면 :profile명령이 활성화 된 Vim 버전을 구하십시오 . (바닐라 BIG Windows 버전은 아니지만 Cygwin과 함께 제공되는 버전이 있습니다. 또한 대부분의 배포판에서는 자체 컴파일이 매우 쉽습니다.)


답변

-V옵션으로 Vim을 시작하여 모든 Vim 활동을 파일로 인쇄하는 것이 도움이된다는 것을 알았습니다 .

vim -V12log

최대 상세 정보 (레벨 12)를 제공하고 파일에 출력합니다 log. 그런 다음 느린 것으로 알려진 일부 Vim 작업을 수행 한 다음 내부적으로 어떤 함수 / 매핑이 호출되는지 확인할 수 있습니다.


답변

화면 업데이트 작업 ( ^L, 스크롤 등)에 문제가있는 경우 구문 강조 파일이 비효율적 일 수 있습니다. 구문 강조 ( :syn off) 를 일시적으로 비활성화 하고 문제가 사라지는 지 확인하여 이를 테스트 할 수 있습니다. 세부 사항을 파고 싶다면 다음을 사용하여 현재 구문 파일을 프로파일 링하십시오 :syntime.

  1. 구문 강조 성능 문제를 일으키는 파일을 엽니 다.
  2. :syntime on프로파일 링을 시작하려면 실행하십시오 .
  3. 파일을 약간 스크롤하십시오.
  4. :syntime report보고서를 생성하기 위해 실행하십시오 . 보고서에서 첫 번째로 나열된 패턴은 처리하는 데 가장 많은 시간이 소요 된 패턴입니다.

답변