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

vim-tabby slows down the startup time #16

Open
realhackcraft opened this issue Jun 26, 2024 · 2 comments
Open

vim-tabby slows down the startup time #16

realhackcraft opened this issue Jun 26, 2024 · 2 comments

Comments

@realhackcraft
Copy link

When I use vim-tabby, because it can't be lazy loaded (#15), the startup time for my setup increases by 30ms (around 45%).

Here is the startup time without tabby:

       startup: 45.7
event                  time percent plot
init.lua              35.87   78.55 ██████████████████████████
telescope             21.83   47.80 ███████████████▉
nvchad.configs.teles   6.12   13.39 ████▍
telescope._extension   5.02   11.00 ███▋
init.lua               3.97    8.70 ██▉
telescope.previewers   2.89    6.33 ██▏
nvim-treesitter.pars   2.51    5.49 █▉
nvim-treesitter.lua    2.20    4.81 █▋
expanding arguments    1.93    4.23 █▍
telescope.previewers   1.75    3.84 █▎
nvim-treesitter        1.70    3.72 █▎
nvchad                 1.68    3.68 █▎
reading ShaDa          1.63    3.57 █▏
telescope.actions      1.58    3.46 █▏
telescope.sorters      1.55    3.40 █▏
telescope.config       1.45    3.17 █
vim.filetype           1.41    3.08 █
nvim-treesitter.inst   1.39    3.05 █
telescope.pickers      1.38    3.02 █
vim.lsp                1.29    2.83 ▉
nvchad.configs.trees   1.13    2.48 ▉
telescope._extension   1.07    2.35 ▊
telescope.log          1.06    2.31 ▊
vim.treesitter         1.01    2.22 ▊
notify                 1.00    2.19 ▊
telescope.previewers   0.96    2.10 ▊
plenary.log            0.94    2.05 ▋
nvim-treesitter.info   0.93    2.03 ▋
vim.treesitter.langu   0.90    1.97 ▋
vim._defaults          0.80    1.76 ▋
options                0.79    1.72 ▋
nvim-treesitter.conf   0.77    1.69 ▌
plenary.scandir        0.74    1.61 ▌
nvchad.autocmds        0.73    1.60 ▌
sourcing vimrc file(   0.73    1.59 ▌
plugins                0.68    1.49 ▌
plenary.async          0.65    1.43 ▌
nvim-treesitter.quer   0.64    1.39 ▌
notify.instance        0.64    1.39 ▌
configs.lazy           0.61    1.33 ▌
vim.treesitter.query   0.61    1.33 ▌
telescope.finders      0.60    1.31 ▍
nvchad.stl.default     0.59    1.29 ▍
lazy.core.loader       0.57    1.25 ▍
nvchad.options         0.55    1.19 ▍
nvchad.stl.utils       0.51    1.11 ▍
nvconfig               0.47    1.03 ▍
plenary.path           0.45    0.99 ▍
lazy.stats             0.42    0.92 ▎
vim.lsp.protocol       0.42    0.91 ▎
telescope.utils        0.41    0.89 ▎
vim.loader             0.40    0.87 ▎
plenary.popup          0.39    0.85 ▎
conform                0.37    0.81 ▎
vim.lsp.util           0.36    0.79 ▎
init lua interpreter   0.35    0.78 ▎
nvchad.plugins.ui      0.31    0.69 ▎
inits 1                0.31    0.67 ▎
notify.config          0.30    0.67 ▎
plenary.async.async    0.30    0.66 ▎
lazy.core.config       0.29    0.64 ▎
nvchad.plugins         0.29    0.63 ▎
nvim-treesitter.tsra   0.28    0.62 ▎
plenary.async.tests    0.28    0.62 ▎
init highlight         0.28    0.60 ▎
locale set             0.27    0.59 ▎
lazy                   0.25    0.55 ▏
lazy.core.handler      0.24    0.52 ▏
lazy.core.util         0.24    0.52 ▏
telescope.finders.as   0.23    0.49 ▏
plenary.async.util     0.22    0.49 ▏
notify.windows         0.22    0.49 ▏
vim._init_packages     0.22    0.47 ▏
vim.diagnostic         0.21    0.46 ▏
vim.treesitter.langu   0.21    0.46 ▏
vim.uri                0.20    0.45 ▏
lazy.core.handler.ev   0.20    0.44 ▏
lazy.core.handler.ke   0.18    0.40 ▏
nvim-treesitter.ts_u   0.18    0.40 ▏
telescope.actions.se   0.18    0.39 ▏
plenary.vararg         0.18    0.39 ▏
notify.service         0.18    0.39 ▏
nvim-treesitter.util   0.17    0.38 ▏
chadrc                 0.17    0.36 ▏
telescope._            0.16    0.35 ▏
plenary.async.contro   0.16    0.35 ▏
notify.animate         0.16    0.35 ▏
lazy.core.plugin       0.16    0.34 ▏
plenary.job            0.16    0.34 ▏
vim.lsp._snippet_gra   0.16    0.34 ▏
notify.util            0.15    0.34 ▏
vim.treesitter._rang   0.15    0.34 ▏
vim.lsp._changetrack   0.15    0.34 ▏
telescope.pickers.en   0.15    0.33 ▏
lazy.core.handler.ft   0.15    0.33 ▏
syntax.vim             0.15    0.32 ▏
first screen update    0.15    0.32 ▏
vim.fs                 0.14    0.31 ▏
vim.func._memoize      0.13    0.29 ▏
inits 3                0.13    0.29 ▏
telescope              0.13    0.29 ▏
vim.func               0.13    0.29 ▏
early init             0.13    0.28 ▏
telescope.entry_mana   0.13    0.28 ▏
vim._editor            0.13    0.28 ▏
lazy.core.handler.cm   0.12    0.27 ▏
telescope.lua          0.12    0.27 ▏
notify.service.buffe   0.12    0.26 ▏
nvim-treesitter.shel   0.12    0.26 ▏
plenary.vararg.rotat   0.12    0.26 ▏
vim.lsp.rpc            0.12    0.25 ▏
telescope.actions.ut   0.12    0.25 ▏
telescope.make_entry   0.12    0.25 ▏
telescope.actions.st   0.11    0.25 ▏
nvchad.tabufline.laz   0.11    0.24 ▏
nvim-treesitter.cach   0.11    0.24 ▏
vim.version            0.11    0.24 ▏
clipboard.vim          0.10    0.23 ▏
nvim-treesitter.quer   0.10    0.23 ▏
telescope.pickers.wi   0.10    0.23 ▏
plenary.window.borde   0.10    0.22 ▏
telescope.previewers   0.10    0.22 ▏
nvim-treesitter.comp   0.10    0.21 ▏
plenary.async.struct   0.10    0.21 ▏
nvim-treesitter.inde   0.09    0.21 ▏
notify.util.queue      0.09    0.20 ▏
telescope.from_entry   0.09    0.20 ▏
matchparen.vim         0.09    0.20 ▏
filetype.lua           0.09    0.19 ▏
vim.lsp.log            0.09    0.19 ▏
telescope.mappings     0.09    0.19
notify.config.highli   0.09    0.19
telescope.previewers   0.08    0.18
telescope.actions.mt   0.08    0.18
telescope.config.res   0.08    0.18
nvim-treesitter.stat   0.08    0.18
vim.lsp.sync           0.08    0.17
done waiting for UI    0.08    0.17
telescope.pickers.mu   0.08    0.17
nvim-treesitter.high   0.08    0.17
plenary.bit            0.08    0.17
plenary.window         0.07    0.16
telescope.pickers.sc   0.07    0.16
plenary.strings        0.07    0.16
plenary.functional     0.07    0.15
vim.highlight          0.07    0.15
plenary.popup.utils    0.07    0.15
telescope.debounce     0.07    0.15
telescope.pickers.hi   0.07    0.15
telescope._extension   0.07    0.15
plenary.compat         0.07    0.14
before starting main   0.07    0.14
ftplugin.vim           0.07    0.14
telescope.state        0.06    0.14
telescope.algos.link   0.06    0.14
telescope.finders.as   0.06    0.14
telescope.pickers.la   0.06    0.14
event init             0.06    0.13
telescope.finders.as   0.06    0.13
notify.animate.sprin   0.06    0.13
notify.service.buffe   0.06    0.13
telescope._extension   0.06    0.13
notify.service.notif   0.06    0.13
notify.stages.util     0.06    0.13
plenary.tbl            0.06    0.12
plenary.class          0.06    0.12
telescope.deprecated   0.06    0.12
plenary.errors         0.06    0.12
notify.stages          0.05    0.12
opening buffers        0.05    0.11
vim.inspect            0.05    0.11
init first window      0.04    0.08
synload.vim            0.04    0.08
editorconfig.lua       0.04    0.08
vim.shared             0.03    0.07
shada.vim              0.03    0.07
vim._options           0.03    0.07
indent.vim             0.03    0.07
man.lua                0.03    0.06
filetype.lua           0.03    0.05
osc52.lua              0.02    0.05
clear screen           0.02    0.05
ffi                    0.02    0.05
plenary.vim            0.02    0.04
executing command ar   0.02    0.04
UIEnter autocommands   0.01    0.03
window checked         0.01    0.03
VimEnter autocommand   0.01    0.03
inits 2                0.01    0.03
spellfile.vim          0.01    0.02
vim.keymap             0.01    0.02
BufEnter autocommand   0.01    0.02
init default mapping   0.01    0.01
parsing arguments      0.00    0.01
vim.F                  0.00    0.01
--- NVIM STARTING --   0.00    0.00
waiting for UI         0.00    0.00
editing files in win   0.00    0.00
--- NVIM STARTED ---   0.00    0.00

Here is the startup time with tabby:

       startup: 69.1
event                  time percent plot
init.lua              33.70   48.78 ██████████████████████████
VimEnter autocommand  24.73   35.79 ███████████████████▏
telescope             21.70   31.41 ████████████████▊
nvchad.configs.teles   5.87    8.50 ████▌
telescope._extension   5.30    7.68 ████▏
init.lua               3.75    5.43 ██▉
telescope.previewers   2.64    3.82 ██
nvim-treesitter.lua    2.46    3.56 █▉
nvim-treesitter.pars   2.24    3.24 █▊
expanding arguments    2.12    3.07 █▋
nvchad                 2.03    2.94 █▋
nvim-treesitter        1.98    2.86 █▌
telescope.sorters      1.59    2.31 █▎
reading ShaDa          1.59    2.30 █▎
nvim-treesitter.inst   1.56    2.26 █▎
telescope.previewers   1.55    2.25 █▎
telescope.actions      1.55    2.24 █▎
telescope.pickers      1.50    2.17 █▏
vim.lsp                1.35    1.96 █
vim.filetype           1.35    1.95 █
telescope.config       1.25    1.81 █
nvim-treesitter.info   1.11    1.60 ▉
telescope.log          1.07    1.55 ▉
nvim-treesitter.conf   1.00    1.45 ▊
telescope._extension   0.98    1.42 ▊
plenary.log            0.96    1.39 ▊
telescope.previewers   0.95    1.37 ▊
vim.treesitter         0.94    1.36 ▊
notify                 0.91    1.32 ▊
nvim-treesitter.quer   0.81    1.17 ▋
vim._defaults          0.80    1.16 ▋
plenary.scandir        0.76    1.10 ▋
sourcing vimrc file(   0.75    1.09 ▋
nvchad.autocmds        0.75    1.09 ▋
vim.treesitter.langu   0.73    1.06 ▋
plenary.async          0.70    1.02 ▌
nvchad.stl.default     0.68    0.98 ▌
configs.lazy           0.63    0.91 ▌
telescope.finders      0.62    0.90 ▌
plugins                0.62    0.90 ▌
notify.instance        0.58    0.84 ▌
nvchad.stl.utils       0.57    0.83 ▌
options                0.56    0.81 ▍
lazy.core.loader       0.56    0.81 ▍
nvconfig               0.50    0.72 ▍
plenary.path           0.44    0.63 ▍
vim.treesitter.query   0.43    0.62 ▍
telescope.utils        0.42    0.60 ▍
nvchad.options         0.41    0.60 ▍
init lua interpreter   0.40    0.58 ▎
vim.loader             0.40    0.57 ▎
plenary.popup          0.39    0.56 ▎
plenary.async.async    0.38    0.55 ▎
conform                0.38    0.55 ▎
vim.lsp.util           0.38    0.55 ▎
vim.lsp.protocol       0.36    0.52 ▎
nvim-treesitter.tsra   0.36    0.52 ▎
tabby.vim              0.31    0.45 ▎
inits 1                0.31    0.44 ▎
nvchad.plugins.ui      0.31    0.44 ▎
init highlight         0.30    0.43 ▎
lazy.stats             0.29    0.41 ▎
notify.config          0.27    0.39 ▎
locale set             0.26    0.37 ▎
plenary.async.tests    0.25    0.36 ▎
lazy.core.config       0.25    0.36 ▎
lazy                   0.23    0.34 ▏
inits 3                0.23    0.33 ▏
first screen update    0.23    0.33 ▏
telescope.finders.as   0.22    0.32 ▏
vim.version            0.22    0.31 ▏
vim.diagnostic         0.21    0.31 ▏
vim._init_packages     0.21    0.31 ▏
nvchad.plugins         0.21    0.30 ▏
nvim-treesitter.inde   0.21    0.30 ▏
plenary.vararg         0.20    0.30 ▏
nvim-treesitter.quer   0.20    0.29 ▏
lazy.core.handler      0.20    0.29 ▏
vim.uri                0.20    0.29 ▏
lazy.core.handler.ft   0.20    0.29 ▏
telescope.actions.se   0.20    0.28 ▏
plenary.async.util     0.19    0.28 ▏
nvim-treesitter.util   0.18    0.26 ▏
lazy.core.plugin       0.17    0.25 ▏
lazy.core.handler.ev   0.17    0.25 ▏
notify.windows         0.17    0.25 ▏
telescope.entry_mana   0.17    0.25 ▏
nvchad.tabufline.laz   0.17    0.25 ▏
nvim-treesitter.ts_u   0.17    0.25 ▏
notify.service         0.17    0.25 ▏
telescope._            0.16    0.23 ▏
vim.lsp._changetrack   0.16    0.23 ▏
telescope.pickers.en   0.16    0.23 ▏
telescope.make_entry   0.16    0.23 ▏
plenary.job            0.16    0.23 ▏
syntax.vim             0.16    0.23 ▏
vim.lsp._snippet_gra   0.15    0.22 ▏
vim.lsp.rpc            0.15    0.22 ▏
telescope              0.15    0.21 ▏
lazy.core.util         0.14    0.21 ▏
lazy.core.handler.ke   0.14    0.21 ▏
nvim-treesitter.comp   0.14    0.21 ▏
plenary.vararg.rotat   0.14    0.21 ▏
vim.fs                 0.14    0.20 ▏
telescope.lua          0.13    0.19 ▏
chadrc                 0.13    0.19 ▏
early init             0.13    0.19 ▏
plenary.async.contro   0.13    0.19 ▏
vim._editor            0.12    0.18 ▏
nvim-treesitter.stat   0.12    0.18 ▏
plenary.window         0.12    0.17 ▏
nvim-treesitter.shel   0.12    0.17 ▏
notify.service.buffe   0.11    0.17 ▏
notify.util            0.11    0.16 ▏
notify.animate         0.11    0.16 ▏
lazy.core.handler.cm   0.11    0.16 ▏
vim.lsp.log            0.11    0.15 ▏
plenary.window.borde   0.11    0.15 ▏
plenary.errors         0.10    0.15 ▏
vim.func               0.10    0.15 ▏
telescope.actions.mt   0.10    0.15 ▏
telescope.pickers.la   0.10    0.15 ▏
nvim-treesitter.cach   0.10    0.14 ▏
vim.treesitter.langu   0.10    0.14 ▏
telescope.pickers.hi   0.10    0.14 ▏
nvim-treesitter.high   0.09    0.14 ▏
filetype.lua           0.09    0.13 ▏
telescope.mappings     0.09    0.13 ▏
matchparen.vim         0.09    0.13 ▏
telescope.from_entry   0.09    0.12 ▏
telescope.config.res   0.09    0.12 ▏
clipboard.vim          0.09    0.12 ▏
vim.func._memoize      0.09    0.12 ▏
vim.treesitter._rang   0.09    0.12 ▏
vim.highlight          0.09    0.12 ▏
done waiting for UI    0.08    0.12 ▏
nvchad.configs.trees   0.08    0.12 ▏
notify.config.highli   0.08    0.12 ▏
tabby.vim              0.08    0.12 ▏
plenary.strings        0.08    0.11
telescope.previewers   0.08    0.11
telescope._extension   0.08    0.11
plenary.bit            0.08    0.11
telescope.actions.ut   0.08    0.11
vim.lsp.sync           0.08    0.11
telescope.pickers.sc   0.07    0.11
ftplugin.vim           0.07    0.10
plenary.functional     0.07    0.10
telescope.previewers   0.07    0.10
plenary.tbl            0.07    0.10
plenary.popup.utils    0.07    0.10
telescope.actions.st   0.07    0.10
telescope.debounce     0.07    0.10
plenary.compat         0.07    0.10
telescope.state        0.07    0.10
telescope.algos.link   0.06    0.09
notify.service.notif   0.06    0.09
telescope.finders.as   0.06    0.09
telescope.deprecated   0.06    0.09
plenary.async.struct   0.06    0.09
telescope.pickers.wi   0.06    0.09
telescope.finders.as   0.06    0.09
telescope.pickers.mu   0.06    0.09
UIEnter autocommands   0.06    0.09
before starting main   0.06    0.09
telescope._extension   0.06    0.09
event init             0.06    0.08
plenary.class          0.06    0.08
notify.service.buffe   0.06    0.08
notify.stages.util     0.06    0.08
notify.animate.sprin   0.06    0.08
notify.util.queue      0.05    0.08
notify.stages          0.05    0.08
virtual_text.vim       0.05    0.08
job.vim                0.05    0.07
vim.inspect            0.04    0.06
opening buffers        0.04    0.06
BufEnter autocommand   0.04    0.06
agent.vim              0.04    0.06
vim.shared             0.04    0.05
synload.vim            0.04    0.05
init first window      0.04    0.05
vim._options           0.03    0.05
editorconfig.lua       0.03    0.05
shada.vim              0.03    0.05
clear screen           0.03    0.04
indent.vim             0.03    0.04
man.lua                0.03    0.04
plenary.vim            0.02    0.03
osc52.lua              0.02    0.03
filetype.lua           0.02    0.03
ffi                    0.02    0.03
executing command ar   0.02    0.03
window checked         0.02    0.03
globals.vim            0.02    0.02
vim.keymap             0.01    0.02
inits 2                0.01    0.02
keybindings.vim        0.01    0.02
spellfile.vim          0.01    0.01
init default mapping   0.01    0.01
parsing arguments      0.01    0.01
vim.F                  0.00    0.01
waiting for UI         0.00    0.00
editing files in win   0.00    0.00
--- NVIM STARTED ---   0.00    0.00
--- NVIM STARTING --   0.00    0.00
@icycodes
Copy link
Member

Thank you for bringing up this topic. I will try to add support for lazy loading in the future version.

@realhackcraft
Copy link
Author

Interesting that the problem seems to be with telescope, taking up 21 ms with tabby, but only 0.13 ms without it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants