Mam włączonych wiele wtyczek podczas korzystania z Vima - przez lata zbierałem wtyczki. Mam już dość tego, ile czasu zajmuje Vimowi rozpoczęcie teraz, więc chciałbym sprofilować jego uruchomienie i zobaczyć, które z wielu posiadanych przeze mnie wtyczek są za to odpowiedzialne.
Czy istnieje sposób na profilowanie uruchamiania Vima lub uruchamiania skryptów? Idealnie chciałbym wiedzieć, ile czasu Vim spędza na każdym załadowanym skrypcie Vima.
vim --startuptime /dev/stdout +qall
time vim +q
jeśli chcesz tylko zmierzyć czas uruchamiania vima jako całości.vim --startuptime /dev/stdout +qall
ivim --startuptime vim.log +qall; cat vim.log
.Możesz użyć własnego mechanizmu profilowania vima:
Po uruchomieniu powyższego w bieżącym katalogu znajdziesz plik o nazwie profile.log zawierający wszystkie wymagane informacje. Aby uzyskać tabelę informacji dla skryptu podobną do już istniejącej dla funkcji, użyj (po otwarciu tego pliku w vimie):
Będzie nieposortowany, ale zawsze możesz użyć wbudowanego
:sort
polecenia, jeśli liczba skryptów jest zbyt duża.źródło
dbext.vim
, które trwałogvim --cmd 'profile start profile.log' --cmd 'profile func *' --cmd 'profile file *' -c 'profdel func *' -c 'profdel file *' -c 'qa!'
Tworzy wiele pustych plików w vimie.Stworzyłem ten projekt Github, aby lepiej odpowiedzieć na twoje pytanie. Zasadniczo podsumowuje czas dla każdego wywołania funkcji dla każdej wtyczki, co nie jest oczywiste (ale ważne) z surowego wyjścia profilu vim. Bash, Python, R, Ruby są obsługiwane do tworzenia wyników profilowania.
Otrzymasz następującą liczbę wyników:
Wraz z wyjściem tekstowym takim jak ten:
źródło
!
przed tagiem.Możesz uruchomić
vim -V
, przepuścić dane wyjściowe przez narzędzie, które dodaje znaczniki czasu i przeanalizować dane wyjściowe. Ta linia poleceń robi to, na przykład:Być może będziesz musiał pisać na ślepo, :qaby wrócić do monitu. Następnie powinieneś znaleźć plik
vilog
w bieżącym katalogu z sygnaturami czasowymi pracowników na początku każdej linii.Jeśli możesz zrobić z dokładnością do sekundy, możesz to zrobić:
źródło
Opierając się na pracy wykonanej przez @hyiltiz, która zależy od R, stworzyłem wersję profilera w Pythonie , ponieważ jest ona częściej dostępna w systemie niż R.
Jest również nieco łatwiejszy do rozszerzenia, dlatego funkcje są następujące:
Wynik jest podobny do tego, co zapewnia vim-plugins-profile:
źródło
No plugin found
.I rafinowany OIR -V rozwiązanie według innaM pokazanie czasu delta
źródło
Jeśli ładujesz swoje wtyczki z pliku .vimrc, to co możesz zrobić, to umieścić
q
w jakimś wierszu w części pliku, aby go zamknąć, aby móc użyć licznika czasu procesu, takiego jaktime
polecenie unix . Dokładniej, wyglądałoby to następująco:.vimrc
plikuq
liniętime vim
wielokrotnie i średnioTo nie jest eleganckie, ale myślę, że spełni swoje zadanie.
źródło
Istnieje wtyczka do profilowania czasu uruchamiania vima.
http://www.vim.org/scripts/script.php?script_id=2915
źródło
Wygodne może być śledzenie
--startime
pliku podczas otwierania określonego plikuźródło
Czy nie ma
time
polecenia bash, którego można użyć w następujący sposób:EDYCJA : Nie obejmuje czasu uruchamiania skryptów. Zamiast tego użyj sugestii @jamessan.
źródło