Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve neovim startup performance #6

Open
dminca opened this issue Apr 28, 2024 · 0 comments
Open

improve neovim startup performance #6

dminca opened this issue Apr 28, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@dminca
Copy link
Owner

dminca commented Apr 28, 2024

Checkout mason and lsp-zero, see how they would improve performance

Tip

neovim benchmark was triggered by issuing vi --startuptime profile +q and sorted
by issuing this command within the IDE /VIM STARTING/,$ sort! f / [^ ]* /

Latest benchmark results (sorted)
times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

262.001  050.816  046.097: sourcing /nix/store/srr093dflgjw06g2fs1f269lngc31jc5-packdir-start/pack/myNeovimPackages/start/coc.nvim/plugin/coc.vim
127.396  016.726  016.111: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/filetype.lua
059.657  012.388  011.126: sourcing /nix/store/2lcbwkdiw4q7srsgs6mlj75kl2c4p026-nvim-init-home-manager.vim
086.283  016.762  008.918: require('vim.treesitter')
141.613  009.804  008.683: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/syntax/syntax.vim
094.339  004.635  004.635: require('nvim-treesitter.parsers')
098.347  038.677  004.588: require('nvim-treesitter.configs')
098.327  034.089  004.167: require('nvim-treesitter.query')
179.511  005.612  003.557: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/matchit.vim
086.268  007.844  003.483: require('vim.treesitter.languagetree')
281.979  006.023  003.457: sourcing /nix/store/srr093dflgjw06g2fs1f269lngc31jc5-packdir-start/pack/myNeovimPackages/start/vim-gitgutter/plugin/gitgutter.vim
167.415  002.700  002.700: sourcing /Users/DanielAndrei.Minca/.nix-profile/share/nvim/site/plugin/fzf.vim
096.593  002.248  002.248: require('nvim-treesitter.utils')
085.225  003.338  002.211: require('vim.treesitter.query')
178.685  002.055  002.055: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim
096.662  010.370  001.984: require('nvim-treesitter.tsrange')
269.599  001.789  001.789: require('nvim-treesitter.info')
098.409  052.782  001.717: sourcing /Users/DanielAndrei.Minca/.config/nvim/init.lua
256.288  001.693  001.693: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/coc.nvim/autoload/coc/client.vim
182.553  001.627  001.627: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/netrwPlugin.vim
098.289  001.624  001.624: require('nvim-treesitter.caching')
338.677  001.588  001.588: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/vim-gitgutter/autoload/gitgutter.vim
249.127  001.550  001.550: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/coc.nvim/autoload/coc/rpc.vim
096.625  008.387  001.504: require('nvim-treesitter.ts_utils')
251.811  001.476  001.476: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/coc.nvim/autoload/coc/util.vim
270.588  004.167  001.440: require('nvim-treesitter.install')
280.904  001.301  001.301: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/vim-gitgutter/autoload/gitgutter/highlight.vim
278.283  001.265  001.265: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/vim-gitgutter/autoload/gitgutter/utility.vim
188.002  001.251  001.251: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/tohtml.vim
184.471  001.706  001.204: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/rplugin.vim
086.289  017.928  001.166: require('nvim-treesitter.compat')
085.191  001.128  001.128: require('vim.treesitter.language')
172.734  001.124  001.124: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/gzip.vim
141.403  001.121  001.121: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/syntax/synload.vim
272.269  006.908  001.074: require('nvim-treesitter')
272.940  007.976  001.068: sourcing /nix/store/srr093dflgjw06g2fs1f269lngc31jc5-packdir-start/pack/myNeovimPackages/start/nvim-treesitter/plugin/nvim-treesitter.lua
086.251  001.023  001.023: require('vim.treesitter._range')
180.719  001.006  001.006: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/matchparen.vim
270.542  000.938  000.938: require('nvim-treesitter.shell_command_selectors')
272.263  000.911  000.911: require('nvim-treesitter.query_predicates')
271.347  000.756  000.756: require('nvim-treesitter.statusline')
053.933  000.755  000.755: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/colors/murphy.vim
173.664  000.646  000.646: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/health.vim
034.654  000.626  000.626: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/ftplugin.vim
263.450  000.623  000.623: sourcing /nix/store/srr093dflgjw06g2fs1f269lngc31jc5-packdir-start/pack/myNeovimPackages/start/nnn.vim/plugin/nnn.vim
113.843  000.615  000.615: sourcing /nix/store/20szsjrnqjilz2kvs9a9f8c1rvgmds3y-vim-pack-dir/pack/myNeovimPackages/start/vim-nix/ftdetect/nix.vim
042.595  000.606  000.606: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/indent.vim
186.495  000.551  000.551: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/tarPlugin.vim
189.257  000.525  000.525: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/zipPlugin.vim
059.542  000.507  000.507: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/colors/murphy.vim
183.897  000.502  000.502: sourcing /nix/store/q36sixzgdvxffm5fh9nzd3lgv19sxm2i-neovim-0.9.5/rplugin.vim
283.354  000.465  000.465: sourcing /nix/store/srr093dflgjw06g2fs1f269lngc31jc5-packdir-start/pack/myNeovimPackages/start/vim-nix/plugin/nix.vim
209.348  000.462  000.462: sourcing /nix/store/srr093dflgjw06g2fs1f269lngc31jc5-packdir-start/pack/myNeovimPackages/start/coc-explorer/plugin/coc_explorer.vim
185.155  000.443  000.443: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/shada.vim
191.817  000.411  000.411: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/editorconfig.lua
192.431  000.371  000.371: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/man.lua
185.702  000.290  000.290: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/spellfile.vim
192.917  000.272  000.272: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/nvim.lua
188.547  000.272  000.272: sourcing /nix/store/nxk6lxsm95givrj3qfh8jq8z5v9lvyq4-neovim-unwrapped-0.9.5/share/nvim/runtime/plugin/tutor.vim
002.350  000.210  000.154: require('vim._editor')
016.877  000.154  000.090: require('vim._editor')
016.879  000.295  000.080: require('vim._init_packages')
016.875  000.064  000.064: require('vim._options')
002.133  000.064  000.064: require('vim.shared')
016.720  000.062  000.062: require('vim.shared')
002.352  000.336  000.062: require('vim._init_packages')
002.347  000.056  000.056: require('vim._options')
 clock   elapsed:              other lines
 clock   self+sourced   self:  sourced script
018.511  000.354: init highlight
018.158  000.057: inits 2
018.101  001.214: expanding arguments
016.886  000.535: init lua interpreter
016.056  000.009: parsing arguments
016.047  000.030: window checked
016.017  015.323: inits 1
000.694  000.095: init first window
000.599  000.309: locale set
000.291  000.155: early init
000.135  000.128: event init
000.007  000.007: --- NVIM STARTING ---

times in msec


339.015  000.009: editing files in windows
339.006  000.792: BufEnter autocommands
336.626  000.265: opening buffers
336.360  007.784: reading ShaDa
328.577  000.021: inits 3
328.556  000.014: loading after plugins
328.543  069.205: loading packages
192.973  049.175: loading rtp plugins
098.460  037.213: sourcing vimrc file(s)
007.234  000.792: --cmd commands
006.442  000.295: init default mappings & autocommands
006.147  000.036: clear screen
006.110  000.551: done waiting for UI
005.560  000.002: waiting for UI
005.558  000.340: init highlight
005.218  000.073: inits 2
005.146  002.786: expanding arguments
002.359  000.473: init lua interpreter
001.550  000.009: parsing arguments
001.541  000.034: window checked
001.507  000.529: inits 1
000.978  000.097: init first window
000.881  000.597: locale set
000.284  000.154: early init
000.130  000.123: event init
000.007  000.007: --- NVIM STARTING ---

@dminca dminca added the enhancement New feature or request label Apr 28, 2024
@dminca dminca self-assigned this Apr 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant