Ich habe viele Plugins aktiviert, wenn ich Vim verwende - ich habe im Laufe der Jahre Plugins gesammelt. Ich habe es ein bisschen satt, wie lange Vim jetzt braucht, um zu starten, also möchte ich sein Startup-Profil erstellen und sehen, welche der vielen Plugins, die ich habe, dafür verantwortlich sind.
Gibt es eine Möglichkeit, das Starten oder Ausführen von Skripten von Vim zu profilieren? Idealerweise möchte ich wissen, wie lange Vim in jedem geladenen Vim-Skript verbringt.
vim --startuptime /dev/stdout +qall
time vim +q
wenn Sie nur den Start von vim als Ganzes zeitlich festlegen möchten.vim --startuptime /dev/stdout +qall
undvim --startuptime vim.log +qall; cat vim.log
.Sie können den eigenen Profilierungsmechanismus von vim verwenden:
Nachdem Sie die oben genannten Schritte ausgeführt haben, finden Sie im aktuellen Verzeichnis eine Datei mit dem Namen profile.log mit allen erforderlichen Informationen. Verwenden Sie (nach dem Öffnen dieser Datei in vim) Folgendes, um eine Informationstabelle pro Skript zu erhalten, die der bereits vorhandenen Tabelle pro Funktion ähnelt.
Es wird unsortiert, aber Sie können immer den integrierten
:sort
Befehl verwenden, wenn die Anzahl der Skripte zu groß ist.quelle
dbext.vim
, die länger als drei Sekunden nahm github.com/johnsyweb/dotfiles/commit/09c3001gvim --cmd 'profile start profile.log' --cmd 'profile func *' --cmd 'profile file *' -c 'profdel func *' -c 'profdel file *' -c 'qa!'
Er erstellt viele leere Dateien in vim.Ich habe dieses Github-Projekt erstellt, um Ihre Frage besser beantworten zu können. Grundsätzlich wird das Timing für jeden Funktionsaufruf für jedes Plugin zusammengefasst, was aus der Ausgabe des Raw-Vim-Profils nicht ersichtlich (aber wichtig) ist. Bash, Python, R, Ruby werden zum Erstellen der Profilerstellungsergebnisse unterstützt.
Sie erhalten eine Ergebniszahl wie folgt:
Zusammen mit der Textausgabe wie folgt:
quelle
!
vor dem Tag hinzufügen .Sie können
vim -V
die Ausgabe ausführen , durch ein Dienstprogramm leiten , das Zeitstempel hinzufügt, und die Ausgabe analysieren. Diese Befehlszeile führt dies aus, z.Möglicherweise müssen Sie blind tippen :q , um zu Ihrer Eingabeaufforderung zurückzukehren. Danach sollten Sie die Datei finden
vilog
in Ihrem aktuellen Verzeichnis mit den Zeitstempeln für die Einstellung am Anfang jeder Zeile finden.Wenn Sie mit einer Granularität von einer Sekunde arbeiten können, können Sie dies tun:
quelle
Basierend auf der Arbeit von @hyiltiz , die von R abhängt, habe ich eine Python-Version des Profilers erstellt, da diese auf einem System, das R ist, häufiger verfügbar ist.
Es ist auch etwas einfacher zu erweitern, daher sind die Funktionen:
Die Ausgabe ähnelt der von vim-plugins-profile:
quelle
No plugin found
.Ich habe die vim-V- Lösung von innaM verfeinert, um die Deltazeit anzuzeigen:
quelle
Wenn Sie Ihre Plugins aus einer .vimrc-Datei laden, können Sie einen
q
Teil der Datei in eine Zeile einfügen, um sie zu beenden, damit Sie einen Prozess-Timer wie den Unix-time
Befehl verwenden können. Genauer gesagt würde dies so aussehen:.vimrc
Datei sichernq
Zeile eintime vim
wiederholt und durchschnittlichDas ist nicht elegant, aber ich denke, es wird die Arbeit erledigen.
quelle
Es gibt ein Plugin zum Profilieren der Startzeit von vim.
http://www.vim.org/scripts/script.php?script_id=2915
quelle
Es kann praktisch sein, das
--startime
beim Öffnen einer bestimmten Datei zu verfolgenquelle
Gibt es nicht einen Bash-
time
Befehl, der so verwendet werden kann:BEARBEITEN : Enthält nicht die Startzeit der Skripte. Verwenden Sie stattdessen den Vorschlag von @jamessan.
quelle