sheerun / vim-polyglot

A solid language pack for Vim.
5.59k stars 298 forks source link

vim-polyglot loads HTML files about 120-140ms slower than othree/html5.vim #280

Closed jeromedalbert closed 5 years ago

jeromedalbert commented 6 years ago

Profiling setup

I use Neovim with this command for profiling startup times:

nvim file.html.erb --startuptime profile.log

And here is my polyglot config, which probably shouldn't matter:

call plug#begin('~/.vim/plugged')
...
Plug 'sheerun/vim-polyglot'
...
call plug#end()

...

let g:polyglot_disabled = ['yaml']
let g:markdown_syntax_conceal = 0
let g:html5_event_handler_attributes_complete = 0
let g:html5_rdfa_attributes_complete = 0
let g:html5_microdata_attributes_complete = 0
let g:html5_aria_attributes_complete = 0
let g:jsx_ext_required = 0

(full vim config here)

Startup time with vim-polyglot

Neovim starts in 457 ms.

profile-polyglot.log ``` times in msec clock self+sourced self: sourced script clock elapsed: other lines 000.009 000.009: --- NVIM STARTING --- 000.672 000.663: locale set 001.438 000.766: inits 1 001.458 000.020: window checked 002.100 000.641: parsing arguments 002.105 000.005: expanding arguments 002.212 000.108: inits 2 002.426 000.213: init highlight 004.838 002.041 002.041: sourcing /Users/jerome/.config/nvim/autoload/plug.vim 038.747 000.063 000.063: sourcing /Users/jerome/.vim/plugged/ultisnips/ftdetect/snippets.vim 048.825 009.945 009.945: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftdetect/polyglot.vim 049.417 000.097 000.097: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/ftdetect/rspec.vim 049.564 031.090 020.986: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/filetype.vim 049.970 000.053 000.053: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin.vim 050.360 000.043 000.043: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent.vim 051.568 000.403 000.403: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 051.915 001.073 000.670: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/synload.vim 051.993 001.477 000.404: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syntax.vim 053.970 000.020 000.020: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/filetype.vim 054.341 000.014 000.014: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin.vim 054.697 000.013 000.013: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent.vim 055.560 000.222 000.222: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 056.335 000.205 000.205: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 056.962 000.206 000.206: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 057.791 002.939 002.305: sourcing /Users/jerome/.config/nvim/colors/railscasts_custom.vim 059.515 000.116 000.116: sourcing /Users/jerome/.vim/plugged/vim-sandwich/autoload/operator/sandwich/lib.vim 060.230 000.388 000.388: sourcing /Users/jerome/.vim/plugged/vim-sandwich/autoload/sandwich/opt.vim 060.701 002.171 001.667: sourcing /Users/jerome/.vim/plugged/vim-sandwich/autoload/operator/sandwich.vim 061.967 000.032 000.032: sourcing /Users/jerome/.vim/plugged/vim-repeat/autoload/repeat.vim 062.410 000.696 000.664: sourcing /Users/jerome/.vim/plugged/vim-repeat/autoload/repeat.vim 062.629 001.194 000.497: sourcing /Users/jerome/.config/nvim/plugged/vim-sandwich/macros/sandwich/keymap/surround.vim 065.467 062.797 021.742: sourcing /Users/jerome/.config/nvim/init.vim 065.541 000.007 000.007: sourcing .nvimrc 065.547 000.317: sourcing vimrc file(s) 066.741 001.006 001.006: sourcing /usr/local/opt/fzf/plugin/fzf.vim 067.827 000.913 000.913: sourcing /Users/jerome/.vim/plugged/fzf.vim/plugin/fzf.vim 068.823 000.115 000.115: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/pythonx.vim 069.405 000.220 000.220: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/remote/host.vim 069.532 001.172 000.836: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/python3.vim 069.831 000.095 000.095: sourcing /Users/jerome/.vim/plugged/ultisnips/autoload/UltiSnips/map_keys.vim 069.939 001.937 000.671: sourcing /Users/jerome/.vim/plugged/ultisnips/plugin/UltiSnips.vim 071.423 001.280 001.280: sourcing /Users/jerome/.vim/plugged/bufexplorer/plugin/bufexplorer.vim 072.436 000.612 000.612: sourcing /Users/jerome/.vim/plugged/vim-textobj-user/autoload/textobj/user.vim 075.646 003.968 003.356: sourcing /Users/jerome/.vim/plugged/vim-textobj-function/plugin/textobj/function.vim 081.342 005.429 005.429: sourcing /Users/jerome/.vim/plugged/vim-textobj-entire/plugin/textobj/entire.vim 084.470 002.895 002.895: sourcing /Users/jerome/.vim/plugged/vim-textobj-indent/plugin/textobj/indent.vim 086.348 001.647 001.647: sourcing /Users/jerome/.vim/plugged/vim-textobj-line/plugin/textobj/line.vim 088.289 001.706 001.706: sourcing /Users/jerome/.vim/plugged/vim-textobj-variable-segment/plugin/textobj/variable-segment.vim 088.821 000.240 000.240: sourcing /Users/jerome/.vim/plugged/vim-textobj-function-syntax/plugin/textobj/function/syntax.vim 089.219 000.238 000.238: sourcing /Users/jerome/.vim/plugged/vim-angry/plugin/angry.vim 089.615 000.229 000.229: sourcing /Users/jerome/.vim/plugged/vim-commentary/plugin/commentary.vim 090.690 000.882 000.882: sourcing /Users/jerome/.vim/plugged/vim-abolish/plugin/abolish.vim 091.240 000.373 000.373: sourcing /Users/jerome/.vim/plugged/vim-endwise/plugin/endwise.vim 092.157 000.549 000.549: sourcing /Users/jerome/.vim/plugged/vim-sandwich/plugin/operator/sandwich.vim 092.502 000.264 000.264: sourcing /Users/jerome/.vim/plugged/vim-sandwich/plugin/sandwich.vim 092.816 000.246 000.246: sourcing /Users/jerome/.vim/plugged/vim-sandwich/plugin/textobj/sandwich.vim 093.386 000.366 000.366: sourcing /Users/jerome/.vim/plugged/ReplaceWithRegister/plugin/ReplaceWithRegister.vim 094.124 000.543 000.543: sourcing /Users/jerome/.vim/plugged/vim-exchange/plugin/exchange.vim 094.865 000.562 000.562: sourcing /Users/jerome/.vim/plugged/auto-pairs/plugin/auto-pairs.vim 096.257 001.223 001.223: sourcing /Users/jerome/.vim/plugged/vim-pairs/plugin/pairs.vim 096.786 000.359 000.359: sourcing /Users/jerome/.vim/plugged/incsearch.vim/plugin/incsearch.vim 097.125 000.171 000.171: sourcing /Users/jerome/.vim/plugged/increment-activator/plugin/increment_activator.vim 097.443 000.153 000.153: sourcing /Users/jerome/.vim/plugged/vim-pasta/plugin/pasta.vim 097.959 000.049 000.049: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/autoload/sj/settings.vim 098.222 000.614 000.565: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/plugin/splitjoin.vim 098.655 000.259 000.259: sourcing /Users/jerome/.vim/plugged/vim-tmux-focus-events/plugin/tmux_focus_events.vim 099.027 000.201 000.201: sourcing /Users/jerome/.vim/plugged/replay/plugin/replay.vim 099.533 000.338 000.338: sourcing /Users/jerome/.vim/plugged/vim-gutentags/plugin/gutentags.vim 099.960 000.259 000.259: sourcing /Users/jerome/.vim/plugged/vim-buffer-history/plugin/buffer_history.vim 100.625 000.019 000.019: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/gui_shim.vim 101.038 000.360 000.360: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/gzip.vim 101.118 000.025 000.025: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/health.vim 101.261 000.092 000.092: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/man.vim 102.041 000.722 000.722: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/matchit.vim 102.311 000.208 000.208: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/matchparen.vim 102.966 000.596 000.596: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/netrwPlugin.vim 103.957 000.211 000.211: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/remote/define.vim 104.067 000.764 000.553: sourcing /Users/jerome/.local/share/nvim/rplugin.vim 104.078 001.043 000.279: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/rplugin.vim 104.162 000.019 000.019: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/rrhelper.vim 104.357 000.131 000.131: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/shada.vim 104.455 000.033 000.033: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/spellfile.vim 104.699 000.181 000.181: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/tarPlugin.vim 104.874 000.110 000.110: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/tohtml.vim 104.965 000.029 000.029: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/tutor.vim 105.253 000.227 000.227: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/zipPlugin.vim 105.264 007.071: loading plugins 105.512 000.248: loading packages 105.896 000.150 000.150: sourcing /Users/jerome/.vim/plugged/ultisnips/after/plugin/UltiSnips_after.vim 105.986 000.324: loading after plugins 105.992 000.006: inits 3 108.452 002.460: reading ShaDa 113.296 004.844: clearing screen 123.627 003.860 003.860: sourcing /Users/jerome/.vim/plugged/vim-textobj-erb/plugin/textobj/erb.vim 139.384 000.056 000.056: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/html.vim 141.192 000.073 000.073: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 144.453 001.566 001.566: sourcing /Users/jerome/.vim/plugged/vim-polyglot/autoload/htmlcomplete.vim 145.043 003.124 001.558: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 147.884 000.408 000.408: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 150.640 000.539 000.539: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/ruby.vim 153.185 004.220 003.680: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/ruby.vim 155.017 000.079 000.079: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 156.244 000.040 000.040: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 157.678 000.113 000.113: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 157.942 019.386 011.273: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/eruby.vim 159.709 000.047 000.047: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 160.241 000.036 000.036: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 163.831 001.745 001.745: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/ruby.vim 164.423 000.040 000.040: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 166.116 001.098 001.098: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 166.719 000.036 000.036: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 167.614 000.231 000.231: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 168.923 004.153 002.787: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 169.439 000.047 000.047: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 170.595 000.761 000.761: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/coffee.vim 171.099 000.073 000.073: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 171.603 000.024 000.024: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 172.279 000.049 000.049: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 173.007 002.205 002.059: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 173.055 003.430 000.465: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/indent/html.vim 173.215 011.375 001.960: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/eruby.vim 173.519 000.019 000.019: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 174.256 000.026 000.026: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/html.vim 175.232 000.027 000.027: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 175.740 000.236 000.236: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 176.545 000.067 000.067: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 177.728 000.853 000.853: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/ruby.vim 178.718 000.036 000.036: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 179.011 000.018 000.018: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 179.761 000.036 000.036: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 179.906 005.986 004.687: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/eruby.vim 180.877 000.023 000.023: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 181.166 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 182.225 000.059 000.059: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/ruby.vim 182.524 000.016 000.016: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 182.890 000.049 000.049: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 183.190 000.014 000.014: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 183.591 000.028 000.028: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 184.276 001.566 001.474: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 184.582 000.022 000.022: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 184.856 000.042 000.042: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/coffee.vim 185.151 000.045 000.045: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 185.450 000.014 000.014: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 185.849 000.028 000.028: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 186.540 001.566 001.479: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 186.572 001.881 000.272: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/indent/html.vim 186.637 004.601 001.058: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/eruby.vim 186.931 000.014 000.014: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 189.005 001.543 001.543: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/html.vim 192.929 002.554 002.554: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/javascript.vim 193.362 000.050 000.050: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 193.549 000.012 000.012: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 197.722 003.560 003.560: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/vb.vim 211.422 013.102 013.102: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 213.606 024.314 005.036: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/html.vim 217.515 003.251 003.251: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/javascript.vim 217.945 000.038 000.038: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 218.128 000.008 000.008: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 219.023 004.938 001.641: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/coffee.vim 219.595 000.202 000.202: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/coffee.vim 221.593 001.797 001.797: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/glsl.vim 235.384 012.951 012.951: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 239.397 017.317 004.366: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/less.vim 239.745 000.027 000.027: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/less.vim 239.882 026.022 001.742: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/html.vim 246.036 005.993 005.993: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/ruby.vim 246.652 000.032 000.032: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/ruby.vim 247.520 000.682 000.682: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/ruby.vim 247.851 000.144 000.144: sourcing /Users/jerome/.config/nvim/after/syntax/ruby.vim 248.035 060.809 002.080: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/eruby.vim 249.054 000.022 000.022: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/eruby.vim 254.807 001.609 001.609: sourcing /Users/jerome/.vim/plugged/emmet-vim/plugin/emmet.vim 255.776 000.414 000.414: sourcing /Users/jerome/.vim/plugged/closetag.vim/plugin/closetag.vim 256.766 000.027 000.027: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/html.vim 257.906 000.029 000.029: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 258.470 000.254 000.254: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 259.291 000.044 000.044: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 260.645 000.999 000.999: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/ruby.vim 261.778 000.039 000.039: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 262.074 000.019 000.019: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 262.836 000.038 000.038: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 262.984 006.595 005.148: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/eruby.vim 264.010 000.024 000.024: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 264.301 000.016 000.016: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 265.254 000.029 000.029: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/html.vim 266.258 000.027 000.027: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 266.543 000.016 000.016: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 267.279 000.040 000.040: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 267.754 000.060 000.060: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/ruby.vim 268.070 000.017 000.017: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 268.445 000.051 000.051: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 268.761 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 269.177 000.029 000.029: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 269.890 001.630 001.535: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 270.214 000.024 000.024: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 270.493 000.043 000.043: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/coffee.vim 270.805 000.047 000.047: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 271.125 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 271.543 000.029 000.029: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 272.235 001.624 001.533: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 272.267 001.942 000.275: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/indent/html.vim 272.332 004.767 001.094: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/eruby.vim 272.641 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 272.856 000.031 000.031: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 273.167 000.024 000.024: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 273.483 000.043 000.043: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/coffee.vim 273.789 000.047 000.047: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 274.107 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 274.519 000.029 000.029: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 275.201 001.596 001.505: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 275.233 001.938 000.299: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/indent/html.vim 275.934 000.027 000.027: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/html.vim 277.043 000.029 000.029: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 278.089 000.433 000.433: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 279.477 000.085 000.085: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 281.499 001.429 001.429: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/ruby.vim 282.847 000.045 000.045: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 283.227 000.023 000.023: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 284.193 000.047 000.047: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 284.373 008.803 006.687: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/eruby.vim 285.851 000.038 000.038: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 286.223 000.021 000.021: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 287.381 000.036 000.036: sourcing /Users/jerome/.vim/plugged/vim-polyglot/ftplugin/html.vim 288.537 000.030 000.030: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 288.858 000.018 000.018: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 289.680 000.046 000.046: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 290.172 000.070 000.070: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/ruby.vim 290.517 000.021 000.021: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 290.927 000.056 000.056: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 291.274 000.017 000.017: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 291.732 000.030 000.030: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 292.429 001.705 001.602: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 292.748 000.023 000.023: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 293.024 000.043 000.043: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/coffee.vim 293.334 000.047 000.047: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 293.650 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 294.062 000.029 000.029: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 294.751 001.601 001.511: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 294.784 001.926 000.281: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/indent/html.vim 294.848 004.888 001.145: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/eruby.vim 295.155 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 295.364 000.030 000.030: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 295.672 000.023 000.023: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 295.939 000.042 000.042: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/coffee.vim 296.233 000.046 000.046: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/javascript.vim 296.547 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 296.958 000.028 000.028: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 297.657 001.601 001.512: sourcing /Users/jerome/.vim/plugged/vim-polyglot/indent/html.vim 297.689 001.911 000.268: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/indent/html.vim 301.367 001.801 001.801: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/html.vim 306.832 003.713 003.713: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/javascript.vim 307.209 000.032 000.032: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 307.365 000.007 000.007: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 310.544 002.669 002.669: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/vb.vim 325.672 014.680 014.680: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 328.551 026.873 005.772: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/html.vim 332.862 003.773 003.773: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/javascript.vim 333.245 000.034 000.034: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 333.402 000.007 000.007: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 334.178 005.240 001.426: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/coffee.vim 334.673 000.152 000.152: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/coffee.vim 337.321 002.452 002.452: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/glsl.vim 353.089 014.784 014.784: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 357.204 019.328 004.544: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/less.vim 357.539 000.018 000.018: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/less.vim 357.714 028.971 001.780: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/html.vim 361.857 003.983 003.983: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/ruby.vim 362.201 000.019 000.019: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/ruby.vim 362.746 000.428 000.428: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/ruby.vim 362.981 000.117 000.117: sourcing /Users/jerome/.config/nvim/after/syntax/ruby.vim 363.139 063.782 001.591: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/eruby.vim 363.780 000.016 000.016: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/eruby.vim 365.087 000.981 000.981: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/html.vim 365.611 000.338 000.338: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/html/aria.vim 365.746 000.060 000.060: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/html/electron.vim 365.850 000.037 000.037: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/html/rdfa.vim 366.478 000.020 000.020: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/html.vim 366.972 000.024 000.024: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/javascript.vim 367.301 000.021 000.021: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 367.449 000.007 000.007: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 368.296 001.494 001.443: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/coffee.vim 368.792 000.151 000.151: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/coffee.vim 371.249 002.264 002.264: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/glsl.vim 385.945 013.871 013.871: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 389.979 018.239 004.368: sourcing /Users/jerome/.vim/plugged/vim-polyglot/syntax/less.vim 390.295 000.016 000.016: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/less.vim 390.416 023.774 001.610: sourcing /Users/jerome/.vim/plugged/vim-polyglot/after/syntax/html.vim 391.752 000.710 000.710: sourcing /Users/jerome/.vim/plugged/vim-gutentags/autoload/gutentags.vim 393.614 000.305 000.305: sourcing /Users/jerome/.vim/plugged/vim-gutentags/autoload/gutentags/ctags.vim 421.399 080.485: opening buffers 426.235 000.615 000.615: sourcing /Users/jerome/.vim/plugged/vim-buffer-history/autoload/buffer_history.vim 426.500 004.486: BufEnter autocommands 426.527 000.027: editing files in windows 431.533 000.521 000.521: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/clipboard.vim 432.330 005.281: VimEnter autocommands 432.335 000.005: before starting main loop 457.813 025.478: first screen update 457.819 000.006: --- NVIM STARTED --- ```

Startup time with othree/html5.vim

For this test, I commented out vim-polyglot and used othree/html5.vim directly instead:

call plug#begin('~/.vim/plugged')
...
" Plug 'sheerun/vim-polyglot'
Plug 'othree/html5.vim'
...
call plug#end()

Neovim starts in 316 ms.

profile-html5.log ``` times in msec clock self+sourced self: sourced script clock elapsed: other lines 000.009 000.009: --- NVIM STARTING --- 000.678 000.669: locale set 001.753 001.075: inits 1 001.775 000.022: window checked 002.476 000.701: parsing arguments 002.481 000.005: expanding arguments 002.599 000.118: inits 2 002.816 000.216: init highlight 007.148 003.841 003.841: sourcing /Users/jerome/.config/nvim/autoload/plug.vim 050.521 000.086 000.086: sourcing /Users/jerome/.vim/plugged/ultisnips/ftdetect/snippets.vim 051.158 026.166 026.080: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/filetype.vim 051.617 000.057 000.057: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin.vim 052.028 000.045 000.045: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent.vim 053.171 000.263 000.263: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 053.348 000.811 000.548: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/synload.vim 053.384 001.199 000.388: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syntax.vim 055.594 000.018 000.018: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/filetype.vim 055.961 000.013 000.013: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin.vim 056.316 000.013 000.013: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent.vim 057.177 000.222 000.222: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 057.956 000.208 000.208: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 058.586 000.206 000.206: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/syncolor.vim 059.399 002.925 002.288: sourcing /Users/jerome/.config/nvim/colors/railscasts_custom.vim 060.883 000.102 000.102: sourcing /Users/jerome/.vim/plugged/vim-sandwich/autoload/operator/sandwich/lib.vim 061.593 000.406 000.406: sourcing /Users/jerome/.vim/plugged/vim-sandwich/autoload/sandwich/opt.vim 062.068 001.940 001.432: sourcing /Users/jerome/.vim/plugged/vim-sandwich/autoload/operator/sandwich.vim 063.339 000.036 000.036: sourcing /Users/jerome/.vim/plugged/vim-repeat/autoload/repeat.vim 063.645 000.564 000.528: sourcing /Users/jerome/.vim/plugged/vim-repeat/autoload/repeat.vim 063.854 001.050 000.486: sourcing /Users/jerome/.config/nvim/plugged/vim-sandwich/macros/sandwich/keymap/surround.vim 066.535 063.449 026.184: sourcing /Users/jerome/.config/nvim/init.vim 066.608 000.007 000.007: sourcing .nvimrc 066.613 000.341: sourcing vimrc file(s) 067.791 000.999 000.999: sourcing /usr/local/opt/fzf/plugin/fzf.vim 068.851 000.883 000.883: sourcing /Users/jerome/.vim/plugged/fzf.vim/plugin/fzf.vim 070.099 000.121 000.121: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/pythonx.vim 070.762 000.301 000.301: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/remote/host.vim 070.905 001.287 000.864: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/python3.vim 071.278 000.102 000.102: sourcing /Users/jerome/.vim/plugged/ultisnips/autoload/UltiSnips/map_keys.vim 071.407 002.360 000.971: sourcing /Users/jerome/.vim/plugged/ultisnips/plugin/UltiSnips.vim 072.917 001.281 001.281: sourcing /Users/jerome/.vim/plugged/bufexplorer/plugin/bufexplorer.vim 074.003 000.682 000.682: sourcing /Users/jerome/.vim/plugged/vim-textobj-user/autoload/textobj/user.vim 077.047 003.882 003.200: sourcing /Users/jerome/.vim/plugged/vim-textobj-function/plugin/textobj/function.vim 082.144 004.862 004.862: sourcing /Users/jerome/.vim/plugged/vim-textobj-entire/plugin/textobj/entire.vim 085.172 002.801 002.801: sourcing /Users/jerome/.vim/plugged/vim-textobj-indent/plugin/textobj/indent.vim 086.945 001.546 001.546: sourcing /Users/jerome/.vim/plugged/vim-textobj-line/plugin/textobj/line.vim 088.982 001.803 001.803: sourcing /Users/jerome/.vim/plugged/vim-textobj-variable-segment/plugin/textobj/variable-segment.vim 089.482 000.204 000.204: sourcing /Users/jerome/.vim/plugged/vim-textobj-function-syntax/plugin/textobj/function/syntax.vim 089.882 000.238 000.238: sourcing /Users/jerome/.vim/plugged/vim-angry/plugin/angry.vim 090.273 000.227 000.227: sourcing /Users/jerome/.vim/plugged/vim-commentary/plugin/commentary.vim 091.332 000.875 000.875: sourcing /Users/jerome/.vim/plugged/vim-abolish/plugin/abolish.vim 091.908 000.402 000.402: sourcing /Users/jerome/.vim/plugged/vim-endwise/plugin/endwise.vim 092.741 000.472 000.472: sourcing /Users/jerome/.vim/plugged/vim-sandwich/plugin/operator/sandwich.vim 093.032 000.229 000.229: sourcing /Users/jerome/.vim/plugged/vim-sandwich/plugin/sandwich.vim 093.299 000.208 000.208: sourcing /Users/jerome/.vim/plugged/vim-sandwich/plugin/textobj/sandwich.vim 093.785 000.318 000.318: sourcing /Users/jerome/.vim/plugged/ReplaceWithRegister/plugin/ReplaceWithRegister.vim 094.469 000.511 000.511: sourcing /Users/jerome/.vim/plugged/vim-exchange/plugin/exchange.vim 095.174 000.529 000.529: sourcing /Users/jerome/.vim/plugged/auto-pairs/plugin/auto-pairs.vim 096.575 001.234 001.234: sourcing /Users/jerome/.vim/plugged/vim-pairs/plugin/pairs.vim 097.090 000.349 000.349: sourcing /Users/jerome/.vim/plugged/incsearch.vim/plugin/incsearch.vim 097.428 000.173 000.173: sourcing /Users/jerome/.vim/plugged/increment-activator/plugin/increment_activator.vim 097.738 000.150 000.150: sourcing /Users/jerome/.vim/plugged/vim-pasta/plugin/pasta.vim 098.277 000.048 000.048: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/autoload/sj/settings.vim 098.540 000.643 000.595: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/plugin/splitjoin.vim 098.962 000.253 000.253: sourcing /Users/jerome/.vim/plugged/vim-tmux-focus-events/plugin/tmux_focus_events.vim 099.345 000.210 000.210: sourcing /Users/jerome/.vim/plugged/replay/plugin/replay.vim 099.904 000.376 000.376: sourcing /Users/jerome/.vim/plugged/vim-gutentags/plugin/gutentags.vim 100.333 000.259 000.259: sourcing /Users/jerome/.vim/plugged/vim-buffer-history/plugin/buffer_history.vim 100.998 000.017 000.017: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/gui_shim.vim 101.388 000.338 000.338: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/gzip.vim 101.466 000.024 000.024: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/health.vim 101.599 000.083 000.083: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/man.vim 102.373 000.717 000.717: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/matchit.vim 102.651 000.208 000.208: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/matchparen.vim 103.309 000.595 000.595: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/netrwPlugin.vim 104.418 000.244 000.244: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/remote/define.vim 104.540 000.879 000.635: sourcing /Users/jerome/.local/share/nvim/rplugin.vim 104.552 001.156 000.276: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/rplugin.vim 104.646 000.021 000.021: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/rrhelper.vim 104.861 000.146 000.146: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/shada.vim 104.979 000.041 000.041: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/spellfile.vim 105.221 000.181 000.181: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/tarPlugin.vim 105.401 000.110 000.110: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/tohtml.vim 105.496 000.027 000.027: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/tutor.vim 105.778 000.223 000.223: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/plugin/zipPlugin.vim 105.790 007.010: loading plugins 106.046 000.256: loading packages 106.437 000.157 000.157: sourcing /Users/jerome/.vim/plugged/ultisnips/after/plugin/UltiSnips_after.vim 106.526 000.322: loading after plugins 106.531 000.006: inits 3 109.090 002.559: reading ShaDa 113.659 004.568: clearing screen 123.114 003.451 003.451: sourcing /Users/jerome/.vim/plugged/vim-textobj-erb/plugin/textobj/erb.vim 125.026 000.037 000.037: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 125.778 000.031 000.031: sourcing /Users/jerome/.vim/plugged/html5.vim/ftplugin/html.vim 126.726 000.035 000.035: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 129.980 002.727 002.727: sourcing /Users/jerome/.vim/plugged/html5.vim/autoload/htmlcomplete.vim 130.413 003.383 000.656: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 131.779 000.105 000.105: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 133.782 000.068 000.068: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 135.449 000.394 000.394: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/ruby.vim 138.027 003.763 003.369: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 139.327 000.081 000.081: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 139.577 014.264 006.798: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 144.802 001.605 001.605: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 147.907 001.550 001.550: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 149.175 000.330 000.330: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 150.680 005.205 003.325: sourcing /Users/jerome/.vim/plugged/html5.vim/indent/html.vim 151.258 000.047 000.047: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 151.560 009.448 002.591: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 153.633 000.040 000.040: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 154.679 000.027 000.027: sourcing /Users/jerome/.vim/plugged/html5.vim/ftplugin/html.vim 156.166 000.047 000.047: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 157.032 000.401 000.401: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 158.278 000.092 000.092: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 160.194 000.060 000.060: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 162.130 001.464 001.464: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 163.345 000.054 000.054: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 163.576 009.446 007.300: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 166.082 000.091 000.091: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 167.038 000.076 000.076: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 167.605 000.036 000.036: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 168.318 001.897 001.784: sourcing /Users/jerome/.vim/plugged/html5.vim/indent/html.vim 168.633 000.023 000.023: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 168.740 003.366 001.356: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 171.329 001.539 001.539: sourcing /Users/jerome/.vim/plugged/html5.vim/syntax/html.vim 173.333 000.434 000.434: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 173.499 000.009 000.009: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 176.253 002.308 002.308: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/vb.vim 185.224 008.494 008.494: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 186.959 015.340 004.095: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/html.vim 187.131 000.039 000.039: sourcing /Users/jerome/.vim/plugged/html5.vim/after/syntax/html.vim 191.812 004.215 004.215: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/ruby.vim 192.198 000.141 000.141: sourcing /Users/jerome/.config/nvim/after/syntax/ruby.vim 192.363 022.808 001.534: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/eruby.vim 199.378 001.673 001.673: sourcing /Users/jerome/.vim/plugged/emmet-vim/plugin/emmet.vim 200.291 000.378 000.378: sourcing /Users/jerome/.vim/plugged/closetag.vim/plugin/closetag.vim 201.688 000.024 000.024: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 202.302 000.019 000.019: sourcing /Users/jerome/.vim/plugged/html5.vim/ftplugin/html.vim 203.194 000.028 000.028: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 203.692 000.233 000.233: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 204.429 000.041 000.041: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 205.566 000.035 000.035: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 206.672 000.838 000.838: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 207.414 000.041 000.041: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 207.577 005.608 004.373: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 209.721 000.047 000.047: sourcing /Users/jerome/.vim/plugged/html5.vim/ftplugin/html.vim 211.362 000.077 000.077: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 211.862 000.022 000.022: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 212.995 000.179 000.179: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 214.219 000.068 000.068: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 214.955 000.060 000.060: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 215.435 000.036 000.036: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 216.234 001.769 001.673: sourcing /Users/jerome/.vim/plugged/html5.vim/indent/html.vim 216.563 000.023 000.023: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 216.686 002.934 001.074: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 216.938 000.023 000.023: sourcing /Users/jerome/.vim/plugged/html5.vim/indent/html.vim 217.250 000.021 000.021: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 218.463 000.025 000.025: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/eruby/splitjoin.vim 219.062 000.016 000.016: sourcing /Users/jerome/.vim/plugged/html5.vim/ftplugin/html.vim 219.995 000.030 000.030: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 220.492 000.232 000.232: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 221.245 000.063 000.063: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 222.380 000.034 000.034: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/ruby/splitjoin.vim 223.487 000.838 000.838: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/ruby.vim 224.213 000.036 000.036: sourcing /Users/jerome/.config/nvim/after/ftplugin/ruby.vim 224.356 005.616 004.367: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/eruby.vim 225.265 000.019 000.019: sourcing /Users/jerome/.vim/plugged/html5.vim/ftplugin/html.vim 226.161 000.026 000.026: sourcing /Users/jerome/.vim/plugged/splitjoin.vim/ftplugin/html/splitjoin.vim 226.446 000.015 000.015: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/ftplugin/html.vim 227.144 000.039 000.039: sourcing /Users/jerome/.config/nvim/after/ftplugin/html.vim 227.993 000.049 000.049: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/ruby.vim 228.573 000.042 000.042: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/javascript.vim 228.993 000.029 000.029: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/css.vim 229.680 001.502 001.431: sourcing /Users/jerome/.vim/plugged/html5.vim/indent/html.vim 230.000 000.022 000.022: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 230.103 002.496 000.922: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/eruby.vim 230.303 000.022 000.022: sourcing /Users/jerome/.vim/plugged/html5.vim/indent/html.vim 230.612 000.020 000.020: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/indent/html.vim 233.958 001.672 001.672: sourcing /Users/jerome/.vim/plugged/html5.vim/syntax/html.vim 236.141 000.436 000.436: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/javascript.vim 236.300 000.006 000.006: sourcing /Users/jerome/.config/nvim/after/syntax/javascript.vim 239.255 002.486 002.486: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/vb.vim 250.980 011.285 011.285: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/css.vim 252.824 018.558 004.344: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/html.vim 253.011 000.049 000.049: sourcing /Users/jerome/.vim/plugged/html5.vim/after/syntax/html.vim 256.681 003.294 003.294: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/ruby.vim 257.031 000.109 000.109: sourcing /Users/jerome/.config/nvim/after/syntax/ruby.vim 257.169 025.083 001.401: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/eruby.vim 258.507 000.848 000.848: sourcing /Users/jerome/.vim/plugged/html5.vim/syntax/html.vim 259.012 000.252 000.252: sourcing /Users/jerome/.vim/plugged/html5.vim/syntax/html/aria.vim 259.151 000.046 000.046: sourcing /Users/jerome/.vim/plugged/html5.vim/syntax/html/electron.vim 259.266 000.029 000.029: sourcing /Users/jerome/.vim/plugged/html5.vim/syntax/html/rdfa.vim 260.195 000.023 000.023: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/syntax/html.vim 260.394 000.037 000.037: sourcing /Users/jerome/.vim/plugged/html5.vim/after/syntax/html.vim 261.767 000.726 000.726: sourcing /Users/jerome/.vim/plugged/vim-gutentags/autoload/gutentags.vim 263.740 000.364 000.364: sourcing /Users/jerome/.vim/plugged/vim-gutentags/autoload/gutentags/ctags.vim 290.781 067.589: opening buffers 295.204 000.280 000.280: sourcing /Users/jerome/.vim/plugged/vim-buffer-history/autoload/buffer_history.vim 295.292 004.231: BufEnter autocommands 295.309 000.018: editing files in windows 299.025 000.672 000.672: sourcing /usr/local/Cellar/neovim/0.2.0_1/share/nvim/runtime/autoload/provider/clipboard.vim 299.615 003.633: VimEnter autocommands 299.619 000.004: before starting main loop 316.330 016.711: first screen update 316.335 000.005: --- NVIM STARTED --- ```

In-vim profiling

For in-vim profiling, I start Neovim like so:

nvim file1.html.erb file2.html.erb

Then I do

:profile start profile.log
:profile func *
:profile file *

Finally, I move to file2.html.erb, then quit vim.

Results for vim-polyglot: 10_SynSet() takes 187ms ``` FUNCTIONS SORTED ON TOTAL TIME count total (s) self (s) function 2 0.187081 0.005346 10_SynSet() 1 0.051777 RestoreTmuxWindowName() 2 0.024571 0.007515 7_LoadFTPlugin() 2 0.016951 0.001712 8_LoadIndent() 1 0.003540 0.000071 130_neomake_automake() 1 0.002702 0.000350 130_configure_buffer() 3 0.001988 0.000977 neomake#config#get_with_source() 1 0.001860 0.000036 OnBufEnter() 1 0.001702 0.000508 gutentags#setup_gutentags() 5 0.001667 0.000548 GetLintMsg() 1 0.001597 0.001593 ConfigureLargeBuffers() 2 0.001405 0.000043 neomake#config#get() 1 0.001269 0.000088 neomake#GetEnabledMakers() 1 0.001146 0.000171 neomake#utils#GetSetting() 1 0.001076 0.001036 gutentags#get_project_root() 1 0.000927 0.000165 AutoPairsTryInit() 1 0.000717 0.000477 AutoPairsInit() 1 0.000635 0.000031 130_disabled_for_ft() 4 0.000606 0.000353 neomake#utils#get_config_fts() 3 0.000532 0.000258 131_get() FUNCTIONS SORTED ON SELF TIME count total (s) self (s) function 1 0.051777 RestoreTmuxWindowName() 2 0.024571 0.007515 7_LoadFTPlugin() 2 0.187081 0.005346 10_SynSet() 2 0.016951 0.001712 8_LoadIndent() 1 0.001597 0.001593 ConfigureLargeBuffers() 1 0.001076 0.001036 gutentags#get_project_root() 3 0.001988 0.000977 neomake#config#get_with_source() 5 0.001667 0.000548 GetLintMsg() 1 0.001702 0.000508 gutentags#setup_gutentags() 1 0.000717 0.000477 AutoPairsInit() 2 0.000420 htmlcomplete#DetectOmniFlavor() 4 0.000606 0.000353 neomake#utils#get_config_fts() 1 0.002702 0.000350 130_configure_buffer() 2 0.000275 47_SetupPasta() 12 0.000274 131_resolve_name() 3 0.000532 0.000258 131_get() 9 0.000240 AutoPairsMap() 15 0.000238 79_map() 1 0.000267 0.000189 BuildTabs() 1 0.000171 5_isAnsible() ```
Results for othree/html5.vim: 8_SynSet() takes 65ms ``` FUNCTIONS SORTED ON TOTAL TIME count total (s) self (s) function 2 0.065105 0.004197 8_SynSet() 1 0.050879 RestoreTmuxWindowName() 2 0.021686 0.007387 5_LoadFTPlugin() 2 0.006933 0.001395 6_LoadIndent() 1 0.004258 0.000093 112_neomake_automake() 1 0.003296 0.000509 112_configure_buffer() 3 0.002439 0.001120 neomake#config#get_with_source() 1 0.002284 0.000584 gutentags#setup_gutentags() 1 0.002027 0.000042 OnBufEnter() 1 0.001740 0.001735 ConfigureLargeBuffers() 2 0.001713 0.000051 neomake#config#get() 1 0.001556 0.001501 gutentags#get_project_root() 1 0.001535 0.000092 neomake#GetEnabledMakers() 1 0.001405 0.000195 neomake#utils#GetSetting() 1 0.001337 0.000327 AutoPairsTryInit() 1 0.000918 0.000592 AutoPairsInit() 3 0.000759 0.000361 113_get() 2 0.000732 0.000097 GetTabLine() 1 0.000713 0.000030 112_disabled_for_ft() 4 0.000686 0.000405 neomake#utils#get_config_fts() FUNCTIONS SORTED ON SELF TIME count total (s) self (s) function 1 0.050879 RestoreTmuxWindowName() 2 0.021686 0.007387 5_LoadFTPlugin() 2 0.065105 0.004197 8_SynSet() 1 0.001740 0.001735 ConfigureLargeBuffers() 1 0.001556 0.001501 gutentags#get_project_root() 2 0.006933 0.001395 6_LoadIndent() 3 0.002439 0.001120 neomake#config#get_with_source() 1 0.000918 0.000592 AutoPairsInit() 1 0.002284 0.000584 gutentags#setup_gutentags() 1 0.003296 0.000509 112_configure_buffer() 2 0.000634 0.000462 BuildTabs() 4 0.000686 0.000405 neomake#utils#get_config_fts() 12 0.000398 113_resolve_name() 3 0.000759 0.000361 113_get() 1 0.001337 0.000327 AutoPairsTryInit() 9 0.000326 AutoPairsMap() 2 0.000318 htmlcomplete#DetectOmniFlavor() 2 0.000291 45_SetupPasta() 15 0.000241 79_map() 6 0.000310 0.000216 GetLintMsg() ```

Additional comments

As you can see, vim-polyglot starts up about 140ms more slowly. My html loading times are not great to begin with, even when only othree/html5.vim is activated. But an extra 140ms of startup time, from 316 ms to 457ms, feels very noticeable on my laptop.

When Neovim is already started, using only othree/html5.vim is also faster when browsing from one HTML file to another. An extra 120ms of loading time for SynSet(), from 65 ms to 185ms, feels quite noticeable on my laptop. It feels like going from "okay" loading times to "sluggish" loading times, especially when quickly loading new HTML buffers to figure out the one you want to work on.

So why is vim-polyglot so slow? It seems to be loading more things: a diff between the two startup logs reveals that vim-polyglot has 93 more loading lines. Is there a way to improve this?

jeromedalbert commented 6 years ago

I am not sure the issue above is fixable, since it is seems related to the number of installed language plugins in vim-polyglot.

Indeed, when I replace vim-polyglot with only the language plugins I need (all cherry-picked from vim-polyglot's selection):

call plug#begin('~/.vim/plugged')
...
Plug 'vim-ruby/vim-ruby', { 'for': ['ruby', 'eruby'] }
Plug 'pangloss/vim-javascript', { 'for': ['javascript', 'html', 'eruby.html'] }
Plug 'mxw/vim-jsx', { 'for': 'javascript' }
Plug 'othree/html5.vim', { 'for': ['html', 'eruby.html'] }
Plug 'cakebaker/scss-syntax.vim', { 'for': 'scss' }
Plug 'wavded/vim-stylus', { 'for': 'stylus' }
Plug 'plasticboy/vim-markdown', { 'for': 'markdown' }
Plug 'keith/swift.vim', { 'for': 'swift' }
Plug 'StanAngeloff/php.vim', { 'for': 'php' }
...
call plug#end()

My HTML startup times get ~120ms faster on a 10 starts average.

sheerun commented 6 years ago

Thank you for reporting. Now we need to find the offender.

On Mon, 5 Mar 2018 at 05:44, Jerome Dalbert notifications@github.com wrote:

I am not sure the issue above is fixable, since it is seems related to the number of language plugins.

Indeed, when I replace vim-polyglot with only the language plugins I need (all cherry-picked from vim-polyglot's selection):

Plug 'vim-ruby/vim-ruby', { 'for': ['ruby', 'eruby'] } Plug 'pangloss/vim-javascript', { 'for': ['javascript', 'html', 'eruby.html'] } Plug 'mxw/vim-jsx', { 'for': 'javascript' } Plug 'othree/html5.vim', { 'for': ['html', 'eruby.html'] } Plug 'cakebaker/scss-syntax.vim', { 'for': 'scss' } Plug 'wavded/vim-stylus', { 'for': 'stylus' } Plug 'plasticboy/vim-markdown', { 'for': 'markdown' } Plug 'keith/swift.vim', { 'for': 'swift' } Plug 'StanAngeloff/php.vim', { 'for': 'php' }

My HTML startup times get ~120ms faster on a 10 starts average.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sheerun/vim-polyglot/issues/280#issuecomment-370308406, or mute the thread https://github.com/notifications/unsubscribe-auth/AAR2DdjnhZFF9Xh-AHqxfXJBgCCEc1bQks5tbMKSgaJpZM4Sbhh0 .

sheerun commented 5 years ago

I've removed all after plugins for html. Now the only slowdown compared to your setup is css plugin which I think is reasonable to load for .html files

sheerun commented 5 years ago

(so 20ms difference in loading time)

Nishnha commented 3 years ago

I ran into an issue with slow startup that seems to be related. There was a noticeable lag when opening HTML files in Vim with Polyglot enabled.

I narrowed the problem down to Sleuth and was able to fix the issue by disabling it: Put let g:polyglot_disabled = ['autoindent'] at the top of your vimrc.

It seems that while Polyglot rolls its own implementation of Sleuth, there's still a considerable time delay from using globs.