Vous pouvez utiliser le propre mécanisme de profilage de vim:
vim --cmd 'profile start profile.log' \
--cmd 'profile func *' \
--cmd 'profile file *' \
-c 'profdel func *' \
-c 'profdel file *' \
-c 'qa!'
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):
" Open profile.log file in vim first
let timings=[]
g/^SCRIPT/call add(timings, [getline('.')[len('SCRIPT '):], matchstr(getline(line('.')+1), '^Sourced \zs\d\+')]+map(getline(line('.')+2, line('.')+3), 'matchstr(v:val, ''\d\+\.\d\+$'')'))
enew
call setline('.', ['count total (s) self (s) script']+map(copy(timings), 'printf("%5u %9s %8s %s", v:val[1], v:val[2], v:val[3], v:val[0])'))
Il ne sera pas trié, mais vous pouvez toujours utiliser la :sort
commande intégrée si le nombre de scripts est trop grand.
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
.