vim-tabby slows down the startup time
Opened this issue · 2 comments
realhackcraft commented
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 commented
Thank you for bringing up this topic. I will try to add support for lazy loading in the future version.
realhackcraft commented
Interesting that the problem seems to be with telescope, taking up 21 ms with tabby, but only 0.13 ms without it.