J'ai beaucoup de plugins activés lorsque j'utilise Vim - j'ai collecté des plugins au fil des ans. J'en ai un peu marre du temps que prend Vim pour démarrer maintenant, alors j'aimerais profiler son démarrage et voir lesquels des nombreux plugins dont je dispose sont responsables.
Existe-t-il un moyen de profiler le démarrage de Vim ou l'exécution de scripts? Idéalement, j'aimerais savoir combien de temps Vim passe dans chaque script Vim qu'il charge.
vim --startuptime /dev/stdout +qall
time vim +q
si vous voulez seulement chronométrer le démarrage de vim dans son ensemble.vim --startuptime /dev/stdout +qall
etvim --startuptime vim.log +qall; cat vim.log
.Vous pouvez utiliser le propre mécanisme de profilage de vim:
Après avoir exécuté ce qui précède, vous trouverez un fichier appelé profile.log dans le répertoire actuel avec toutes les informations requises. Pour obtenir une table d'informations par script similaire à celle déjà présente par fonction, utilisez (après avoir ouvert ce fichier dans vim):
Il ne sera pas trié, mais vous pouvez toujours utiliser la
:sort
commande intégrée si le nombre de scripts est trop grand.la source
dbext.vim
, qui prenait plus de trois secondes 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!'
Cela crée beaucoup de fichiers vides dans vim.J'ai créé ce projet Github afin de mieux répondre à votre question. Fondamentalement, cela résume le timing de chaque appel de fonction pour chaque plug-in, ce qui n'est pas évident (mais important) à partir de la sortie du profil vim brut. Bash, Python, R, Ruby sont pris en charge pour la création des résultats de profilage.
Vous obtiendrez un résultat comme celui-ci:
Avec une sortie de texte comme celle-ci:
la source
!
avant l'étiquette.Vous pouvez exécuter
vim -V
, diriger la sortie via un utilitaire qui ajoute des horodatages et analyser la sortie. Cette ligne de commande fait ceci, par exemple:Vous devrez peut-être taper aveuglément :qpour revenir à votre invite. Ensuite, vous devriez trouver le fichier
vilog
dans votre répertoire actuel avec des horodatages d'embauche au début de chaque ligne.Si vous pouvez faire avec une granularité d'une seconde, vous pouvez le faire:
la source
Sur la base du travail effectué par @hyiltiz qui dépend de R, j'ai créé une version Python du profileur, car il est plus souvent disponible sur un système que R.
Il est également légèrement plus facile à étendre, les fonctionnalités sont donc:
La sortie est similaire à celle fournie par vim-plugins-profile:
la source
No plugin found
.J'ai affiné la solution vim -V par innaM pour afficher le temps delta:
la source
Si vous chargez vos plugins à partir d'un fichier .vimrc, ce que vous pouvez faire est de mettre une
q
ligne sur une partie du fichier pour le faire quitter afin que vous puissiez utiliser un minuteur de processus, comme latime
commande unix . Plus précisément, cela ressemblerait à:.vimrc
fichier existantq
lignetime vim
reprises et en moyenneCe n'est pas élégant mais je pense qu'il fera le travail.
la source
Il existe un plugin pour profiler l'heure de démarrage de vim.
http://www.vim.org/scripts/script.php?script_id=2915
la source
Il peut être pratique de tracer le
--startime
lors de l'ouverture d'un fichier particulierla source
N'y a-t-il pas une
time
commande bash qui peut être utilisée comme ceci:EDIT : n'inclut pas l'heure de démarrage des scripts. Utilisez plutôt la suggestion @jamessan.
la source