Eu tenho muitos plugins ativados ao usar o Vim - eu colecionei plugins ao longo dos anos. Estou um pouco cansado de quanto tempo o Vim leva para começar agora, então gostaria de analisar sua inicialização e ver quais dos muitos plugins que tenho são responsáveis.
Existe alguma maneira de criar um perfil da inicialização ou execução de scripts do Vim? Idealmente, eu gostaria de saber quanto tempo o Vim gasta em cada script do Vim que ele carrega.
vim --startuptime /dev/stdout +qall
time vim +q
se você deseja apenas programar a inicialização do vim como um todo.vim --startuptime /dev/stdout +qall
evim --startuptime vim.log +qall; cat vim.log
.Você pode usar o próprio mecanismo de criação de perfil do vim:
Após executar o procedimento acima, você encontrará um arquivo chamado profile.log no diretório atual com todas as informações necessárias. Para obter uma tabela de informações por script semelhante à já apresentada por função, use (depois de abrir este arquivo no vim):
Ele não será classificado, mas você sempre poderá usar o
:sort
comando interno se o número de scripts for muito grande.fonte
dbext.vim
, que estava tomando mais de três segundo 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!'
Ele cria muitos arquivos vazios no vim.Criei este projeto no Github para responder melhor à sua pergunta. Basicamente, resume o tempo de cada chamada de função para todos os plugins, o que não é óbvio (mas importante) da saída do perfil bruto do vim. Bash, Python, R, Ruby são suportados para criar os resultados de criação de perfil.
Você obterá um resultado como este:
Junto com a saída de texto como esta:
fonte
!
antes da tag.Você pode executar
vim -V
, canalizar a saída através de um utilitário que adiciona carimbos de data e hora e analisa a saída. Esta linha de comando faz isso, por exemplo:Pode ser necessário digitar às cegas :qpara retornar ao prompt. Posteriormente, você deve encontrar o arquivo
vilog
em seu diretório atual com registros de data e hora no início de cada linha.Se você pode fazer uma granularidade de segundo, pode fazer o seguinte:
fonte
Com base no trabalho realizado por @hyiltiz que depende de R, criei uma versão em Python do criador de perfil, uma vez que isso está mais frequentemente disponível em um sistema que R.
Também é um pouco mais fácil de estender, portanto, os recursos são:
A saída é semelhante ao que o vim-plugins-profile fornece:
fonte
No plugin found
.Refinei a solução vim -V da innaM para mostrar o tempo delta:
fonte
Se você estiver carregando seus plugins a partir de um arquivo .vimrc, o que você poderia fazer é colocar uma
q
parte do arquivo no meio do arquivo para que ele saia, para que você possa usar um timer de processo, como otime
comando unix . Mais detalhadamente, isso seria semelhante a:.vimrc
arquivo existenteq
linhatime vim
repetidamente e médiaIsso não é elegante, mas acho que vai fazer o trabalho.
fonte
Existe um plug-in para criar um perfil do horário de inicialização do vim.
http://www.vim.org/scripts/script.php?script_id=2915
fonte
Pode ser conveniente rastrear o
--startime
arquivo ao abrir um arquivo específicofonte
Não existe um
time
comando bash que possa ser usado assim:EDIT : Não inclui os scripts de inicialização. Use a sugestão @jamessan.
fonte