NOTICE
As of Neovim 0.9, this plugin is no longer required. Instead run:
vim.loader.enable()
impatient.nvim
Speed up loading Lua modules in Neovim to improve startup time.
Optimisations
This plugin does several things to speed loading Lua modules and files.
Implements a chunk cache
This is done by using loadstring
to compile the Lua modules to bytecode and stores them in a cache file. The cache is invalidated using as hash consisting of:
- The modified time (
sec
and nsec
) of the file path.
- The file size.
The cache file is located in $XDG_CACHE_HOME/nvim/luacache_chunks
.
Implements a module resolution cache
This is done by maintaining a table of module name to path. The cache is invalidated only if a path no longer exists.
The cache file is located in $XDG_CACHE_HOME/nvim/luacache_modpaths
.
Note: This optimization breaks the loading order guarantee of the paths in 'runtimepath'
.
If you rely on this ordering then you can disable this cache (_G.__luacache_config = { modpaths = { enable = false } }
.
See configuration below for more details.
Requirements
Installation
packer.nvim:
-- Is using a standard Neovim install, i.e. built from source or using a
-- provided appimage.
use 'lewis6991/impatient.nvim'
Setup
To use impatient, you need only to include it near the top of your init.lua
or init.vim
.
init.lua:
require('impatient')
init.vim:
lua require('impatient')
Commands
:LuaCacheClear
:
Remove the loaded cache and delete the cache file. A new cache file will be created the next time you load Neovim.
:LuaCacheLog
:
View log of impatient.
:LuaCacheProfile
:
View profiling data. To enable, Impatient must be setup with:
lua require'impatient'.enable_profile()
Configuration
Unlike most plugins which provide a setup()
function, Impatient uses a configuration table stored in the global state, _G.__luacache_config
.
If you modify the default configuration, it must be done before require('impatient')
is run.
Default config:
_G.__luacache_config = {
chunks = {
enable = true,
path = vim.fn.stdpath('cache')..'/luacache_chunks',
},
modpaths = {
enable = true,
path = vim.fn.stdpath('cache')..'/luacache_modpaths',
}
}
require('impatient')
Performance Example
Measured on a M1 MacBook Air.
βββββββββββββ¬βββββββββββββ
Resolve β Load β
βββββββββββββΌβββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Time β Time β Module
βββββββββββββΌβββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
54.337ms β 34.257ms β Total
βββββββββββββΌβββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
7.264ms β 0.470ms β octo.colors
3.154ms β 0.128ms β diffview.bootstrap
2.086ms β 0.231ms β gitsigns
0.320ms β 0.982ms β octo.date
0.296ms β 1.004ms β octo.writers
0.322ms β 0.893ms β octo.utils
0.293ms β 0.854ms β vim.diagnostic
0.188ms β 0.819ms β vim.lsp.util
0.261ms β 0.739ms β vim.lsp
0.330ms β 0.620ms β octo.model.octo-buffer
0.392ms β 0.422ms β packer.load
0.287ms β 0.436ms β octo.reviews
0.367ms β 0.325ms β octo
0.309ms β 0.381ms β octo.graphql
0.454ms β 0.221ms β octo.base64
0.295ms β 0.338ms β octo.reviews.file-panel
0.305ms β 0.306ms β octo.reviews.file-entry
0.183ms β 0.386ms β vim.treesitter.query
0.418ms β 0.149ms β vim.uri
0.342ms β 0.213ms β octo.config
0.110ms β 0.430ms β nvim-lsp-installer.ui.status-win
0.296ms β 0.209ms β octo.window
0.202ms β 0.288ms β vim.lsp.rpc
0.352ms β 0.120ms β octo.gh
0.287ms β 0.184ms β octo.reviews.layout
0.209ms β 0.260ms β vim.lsp.handlers
0.108ms β 0.360ms β luasnip.nodes.snippet
0.243ms β 0.212ms β dirvish
0.289ms β 0.159ms β octo.mappings
0.228ms β 0.220ms β trouble.view
0.145ms β 0.293ms β plenary.job
0.188ms β 0.244ms β vim.lsp.diagnostic
0.032ms β 0.391ms β packer_compiled
0.188ms β 0.228ms β vim.lsp.buf
0.186ms β 0.227ms β vim.lsp.protocol
0.141ms β 0.264ms β nvim-treesitter.install
0.205ms β 0.190ms β vim.lsp._snippet
0.114ms β 0.281ms β colorizer
0.124ms β 0.262ms β nvim-treesitter.parsers
0.331ms β 0.052ms β octo.model.body-metadata
0.325ms β 0.054ms β octo.constants
0.296ms β 0.081ms β octo.reviews.renderer
0.326ms β 0.050ms β octo.model.thread-metadata
0.258ms β 0.117ms β trouble
0.106ms β 0.267ms β cmp.core
0.286ms β 0.085ms β octo.completion
0.120ms β 0.250ms β luasnip
0.286ms β 0.084ms β octo.ui.bubbles
0.068ms β 0.298ms β diffview.utils
0.325ms β 0.039ms β octo.model.title-metadata
0.126ms β 0.234ms β treesitter-context
0.282ms β 0.073ms β octo.signs
0.299ms β 0.043ms β octo.folds
0.112ms β 0.228ms β luasnip.util.util
0.181ms β 0.156ms β vim.treesitter.languagetree
0.260ms β 0.073ms β vim.keymap
0.101ms β 0.231ms β cmp.entry
0.182ms β 0.145ms β vim.treesitter.highlighter
0.191ms β 0.121ms β trouble.util
0.190ms β 0.119ms β vim.lsp.codelens
0.190ms β 0.117ms β vim.lsp.sync
0.197ms β 0.105ms β vim.highlight
0.170ms β 0.132ms β spellsitter
0.086ms β 0.213ms β github_dark
0.200ms β 0.099ms β persistence
0.100ms β 0.196ms β cmp.view.custom_entries_view
0.118ms β 0.176ms β nvim-treesitter.configs
0.090ms β 0.201ms β gitsigns.git
0.114ms β 0.170ms β nvim-lsp-installer.ui.display
0.217ms β 0.064ms β plenary.async.async
0.195ms β 0.078ms β vim.lsp.log
0.191ms β 0.081ms β trouble.renderer
0.122ms β 0.150ms β nvim-treesitter.ts_utils
0.235ms β 0.035ms β plenary
0.100ms β 0.168ms β cmp.source
0.191ms β 0.076ms β vim.treesitter
0.106ms β 0.160ms β lspconfig.util
0.118ms β 0.147ms β nvim-treesitter.query
0.088ms β 0.176ms β gitsigns.config
0.108ms β 0.150ms β cmp
0.193ms β 0.063ms β trouble.providers
0.206ms β 0.050ms β tmux.version.parse
0.103ms β 0.151ms β cmp.view.wildmenu_entries_view
0.070ms β 0.178ms β diffview.path
0.189ms β 0.058ms β trouble.providers.lsp
0.096ms β 0.147ms β luasnip.util.parser
0.093ms β 0.150ms β gitsigns.manager
0.097ms β 0.145ms β null-ls.utils
0.155ms β 0.087ms β plenary.async.control
0.105ms β 0.135ms β nvim-lsp-installer.installers.std
0.107ms β 0.130ms β lspconfig.configs
0.097ms β 0.140ms β null-ls.helpers.generator_factory
0.188ms β 0.047ms β trouble.providers.telescope
0.191ms β 0.040ms β trouble.config
0.099ms β 0.131ms β cmp.utils.window
0.096ms β 0.133ms β luasnip.nodes.choiceNode
0.192ms β 0.036ms β trouble.providers.qf
0.104ms β 0.124ms β cmp.utils.keymap
0.089ms β 0.139ms β gitsigns.hunks
0.104ms β 0.122ms β nvim-lsp-installer.process
0.096ms β 0.129ms β null-ls.sources
0.116ms β 0.108ms β nvim-lsp-installer
0.096ms β 0.128ms β luasnip.nodes.dynamicNode
0.162ms β 0.062ms β tmux.copy
0.197ms β 0.025ms β trouble.folds
0.156ms β 0.066ms β plenary.async.util
0.150ms β 0.071ms β cmp.utils.highlight
0.105ms β 0.116ms β nvim-lsp-installer.server
0.118ms β 0.100ms β nvim-treesitter.utils
0.182ms β 0.035ms β trouble.providers.diagnostic
0.103ms β 0.114ms β luasnip.nodes.node
0.185ms β 0.031ms β trouble.colors
0.180ms β 0.035ms β vim.ui
0.162ms β 0.053ms β spaceless
0.118ms β 0.097ms β nvim-treesitter.shell_command_selectors
0.160ms β 0.053ms β tmux.wrapper.tmux
0.182ms β 0.031ms β vim.treesitter.language
0.178ms β 0.035ms β trouble.text
0.157ms β 0.054ms β plenary.vararg.rotate
0.106ms β 0.104ms β nvim-lsp-installer.installers.context
0.181ms β 0.028ms β tmux
0.158ms β 0.050ms β nvim-treesitter-playground
0.067ms β 0.140ms β diffview.oop
0.158ms β 0.047ms β tmux.resize
0.166ms β 0.039ms β tmux.log.convert
0.161ms β 0.044ms β tmux.layout
0.155ms β 0.048ms β plenary.async.structs
0.101ms β 0.102ms β cmp.view
0.096ms β 0.105ms β luasnip.util.environ
0.145ms β 0.055ms β plenary.async
0.163ms β 0.037ms β tmux.navigation.navigate
0.179ms β 0.020ms β tmux.keymaps
0.155ms β 0.044ms β plenary.functional
0.102ms β 0.097ms β cmp.matcher
0.103ms β 0.095ms β cmp.view.ghost_text_view
0.106ms β 0.091ms β colorizer.nvim
0.168ms β 0.029ms β tmux.log
0.106ms β 0.090ms β nvim-lsp-installer._generated.filetype_map
0.122ms β 0.073ms β nvim-treesitter.info
0.098ms β 0.097ms β null-ls.client
0.105ms β 0.089ms β nvim-lsp-installer.log
0.170ms β 0.024ms β tmux.navigation
0.109ms β 0.084ms β nvim-lsp-installer.servers
0.098ms β 0.095ms β null-ls.helpers.diagnostics
0.160ms β 0.033ms β tmux.configuration.options
0.100ms β 0.091ms β cmp.utils.misc
0.044ms β 0.148ms β lewis6991
0.104ms β 0.088ms β colorizer.trie
0.163ms β 0.028ms β ts_context_commentstring
0.054ms β 0.136ms β cmp-rg
0.130ms β 0.060ms β nvim-treesitter.query_predicates
0.151ms β 0.039ms β plenary.reload
0.096ms β 0.094ms β luasnip.nodes.insertNode
0.160ms β 0.028ms β tmux.layout.parse
0.096ms β 0.093ms β luasnip.nodes.restoreNode
0.166ms β 0.022ms β tmux.configuration.validate
0.100ms β 0.088ms β cmp.view.native_entries_view
0.155ms β 0.033ms β plenary.tbl
0.126ms β 0.062ms β lspconfig.server_configurations.sumneko_lua
0.029ms β 0.160ms β cmp_buffer.buffer
0.105ms β 0.083ms β cmp.utils.str
0.162ms β 0.025ms β tmux.log.severity
0.164ms β 0.024ms β tmux.wrapper.nvim
0.107ms β 0.081ms β nvim-lsp-installer.ui.status-win.components.settings-schema
0.021ms β 0.167ms β lewis6991.null-ls
0.163ms β 0.024ms β tmux.configuration
0.116ms β 0.071ms β nvim-treesitter.tsrange
0.161ms β 0.026ms β tmux.log.channels
0.094ms β 0.091ms β gitsigns.debug
0.163ms β 0.021ms β plenary.vararg
0.166ms β 0.018ms β tmux.version
0.160ms β 0.022ms β tmux.configuration.logging
0.155ms β 0.026ms β plenary.errors
0.127ms β 0.053ms β nvim-treesitter
0.094ms β 0.085ms β null-ls.info
0.100ms β 0.079ms β cmp.config
0.095ms β 0.084ms β null-ls.diagnostics
0.055ms β 0.123ms β cmp_path
0.139ms β 0.038ms β plenary.async.tests
0.098ms β 0.078ms β null-ls.config
0.100ms β 0.076ms β cmp.view.docs_view
0.102ms β 0.074ms β cmp.utils.feedkeys
0.089ms β 0.085ms β gitsigns.current_line_blame
0.127ms β 0.047ms β null-ls
0.107ms β 0.066ms β nvim-lsp-installer.installers
0.095ms β 0.078ms β luasnip.util.mark
0.106ms β 0.066ms β nvim-lsp-installer.fs
0.142ms β 0.030ms β persistence.config
0.100ms β 0.070ms β cmp.config.default
0.078ms β 0.091ms β foldsigns
0.120ms β 0.048ms β lua-dev
0.113ms β 0.053ms β nvim-lsp-installer.ui
0.029ms β 0.138ms β lewis6991.status
0.118ms β 0.047ms β lspconfig
0.113ms β 0.051ms β nvim-lsp-installer.jobs.outdated-servers
0.105ms β 0.058ms β nvim-lsp-installer.installers.npm
0.106ms β 0.057ms β nvim-lsp-installer.core.receipt
0.101ms β 0.061ms β cmp.utils.char
0.091ms β 0.071ms β gitsigns.signs
0.097ms β 0.065ms β luasnip.nodes.util
0.126ms β 0.034ms β treesitter-context.utils
0.096ms β 0.065ms β lua-dev.config
0.109ms β 0.052ms β nvim-lsp-installer.core.fetch
0.103ms β 0.055ms β cmp.types.lsp
0.099ms β 0.059ms β luasnip.nodes.functionNode
0.090ms β 0.067ms β gitsigns.util
0.110ms β 0.047ms β nvim-lsp-installer.jobs.outdated-servers.cargo
0.096ms β 0.061ms β luasnip.config
0.100ms β 0.057ms β cmp.utils.async
0.101ms β 0.055ms β cmp.context
0.091ms β 0.064ms β gitsigns.highlight
0.094ms β 0.061ms β lua-dev.sumneko
0.094ms β 0.061ms β gitsigns.subprocess
0.067ms β 0.088ms β cmp_luasnip
0.105ms β 0.050ms β nvim-lsp-installer.data
0.105ms β 0.049ms β nvim-lsp-installer.installers.pip3
0.120ms β 0.034ms β lspconfig.server_configurations.bashls
0.107ms β 0.046ms β nvim-lsp-installer.core.clients.github
0.107ms β 0.045ms β nvim-lsp-installer.installers.shell
0.099ms β 0.053ms β cmp.config.compare
0.109ms β 0.043ms β lspconfig.server_configurations.clangd
0.115ms β 0.036ms β lspconfig.server_configurations.vimls
0.097ms β 0.054ms β luasnip.util.pattern_tokenizer
0.097ms β 0.053ms β null-ls.helpers.make_builtin
0.101ms β 0.049ms β cmp.utils.api
0.118ms β 0.032ms β lspconfig.server_configurations.jedi_language_server
0.106ms β 0.043ms β nvim-lsp-installer.jobs.outdated-servers.pip3
0.106ms β 0.043ms β nvim-lsp-installer.jobs.outdated-servers.gem
0.108ms β 0.040ms β nvim-lsp-installer._generated.language_autocomplete_map
0.104ms β 0.043ms β nvim-lsp-installer.installers.composer
0.101ms β 0.046ms β cmp.config.mapping
0.047ms β 0.100ms β cmp_nvim_lsp_signature_help
0.109ms β 0.037ms β nvim-lsp-installer.servers.sumneko_lua
0.115ms β 0.028ms β nvim-treesitter.caching
0.096ms β 0.047ms β null-ls.state
0.090ms β 0.053ms β gitsigns.debounce
0.059ms β 0.084ms β cmp_tmux.tmux
0.096ms β 0.045ms β null-ls.builtins.diagnostics.flake8
0.106ms β 0.034ms β nvim-lsp-installer.jobs.pool
0.106ms β 0.033ms β nvim-lsp-installer.ui.status-win.server_hints
0.105ms β 0.034ms β nvim-lsp-installer.installers.gem
0.107ms β 0.032ms β nvim-lsp-installer.jobs.outdated-servers.npm
0.106ms β 0.031ms β nvim-lsp-installer.jobs.outdated-servers.git
0.114ms β 0.022ms β nvim-lsp-installer.servers.jedi_language_server
0.105ms β 0.031ms β nvim-lsp-installer.jobs.outdated-servers.composer
0.098ms β 0.038ms β null-ls.methods
0.109ms β 0.026ms β nvim-lsp-installer.jobs.outdated-servers.version-check-result
0.106ms β 0.029ms β nvim-lsp-installer.settings
0.107ms β 0.027ms β cmp.utils.debug
0.103ms β 0.031ms β cmp.types.cmp
0.070ms β 0.064ms β diffview.events
0.108ms β 0.026ms β nvim-lsp-installer.platform
0.097ms β 0.037ms β null-ls.helpers.command_resolver
0.104ms β 0.029ms β cmp.config.sources
0.107ms β 0.026ms β nvim-lsp-installer.jobs.outdated-servers.github_release_file
0.099ms β 0.033ms β cmp.utils.cache
0.107ms β 0.025ms β nvim-lsp-installer.path
0.101ms β 0.030ms β cmp.utils.autocmd
0.097ms β 0.034ms β null-ls.logger
0.100ms β 0.031ms β cmp.utils.event
0.088ms β 0.042ms β gitsigns.cache
0.103ms β 0.027ms β cmp.utils.pattern
0.108ms β 0.022ms β nvim-lsp-installer.jobs.outdated-servers.jdtls
0.103ms β 0.027ms β cmp.utils.buffer
0.095ms β 0.034ms β luasnip.nodes.textNode
0.096ms β 0.033ms β luasnip.util.dict
0.108ms β 0.021ms β nvim-lsp-installer.servers.bashls
0.108ms β 0.021ms β nvim-lsp-installer.ui.state
0.110ms β 0.018ms β nvim-lsp-installer.servers.vimls
0.101ms β 0.027ms β null-ls.helpers.range_formatting_args_factory
0.057ms β 0.071ms β cmp_treesitter.lru
0.105ms β 0.022ms β nvim-lsp-installer.dispatcher
0.097ms β 0.030ms β luasnip.extras.filetype_functions
0.103ms β 0.024ms β luasnip.session
0.105ms β 0.021ms β nvim-lsp-installer.core.clients.crates
0.105ms β 0.021ms β nvim-lsp-installer.jobs.outdated-servers.github_tag
0.110ms β 0.016ms β cmp.types
0.105ms β 0.021ms β nvim-lsp-installer.core.clients.eclipse
0.105ms β 0.021ms β nvim-lsp-installer.notify
0.089ms β 0.036ms β gitsigns.status
0.096ms β 0.029ms β null-ls.builtins.diagnostics.teal
0.097ms β 0.027ms β null-ls.builtins
0.103ms β 0.021ms β cmp.types.vim
0.060ms β 0.062ms β cmp_tmux.source
0.100ms β 0.022ms β null-ls.helpers
0.098ms β 0.024ms β null-ls.builtins.diagnostics.gitlint
0.065ms β 0.056ms β cmp_treesitter
0.024ms β 0.097ms β buftabline.buftab
0.095ms β 0.026ms β null-ls.builtins.diagnostics.shellcheck
0.095ms β 0.026ms β null-ls.builtins.diagnostics.luacheck
0.097ms β 0.021ms β null-ls.helpers.formatter_factory
0.097ms β 0.022ms β luasnip.util.events
0.097ms β 0.021ms β luasnip.util.types
0.096ms β 0.022ms β luasnip.util.functions
0.037ms β 0.078ms β cmp_cmdline
0.032ms β 0.083ms β cmp_buffer.source
0.040ms β 0.074ms β lewis6991.cmp
0.060ms β 0.054ms β cmp_treesitter.treesitter
0.089ms β 0.025ms β gitsigns.message
0.039ms β 0.073ms β cmp_nvim_lsp.source
0.055ms β 0.054ms β buftabline.build
0.026ms β 0.083ms β lewis6991.lsp
0.051ms β 0.055ms β cmp_nvim_lua
0.033ms β 0.065ms β cleanfold
0.071ms β 0.025ms β cmp_tmux
0.043ms β 0.053ms β cmp_nvim_lsp
0.058ms β 0.033ms β cmp-spell
0.043ms β 0.037ms β cmp_emoji
0.029ms β 0.049ms β lewis6991.floating_man
0.032ms β 0.042ms β cmp_buffer.timer
0.024ms β 0.050ms β lewis6991.treesitter
0.019ms β 0.054ms β lewis6991.cmp_gh
0.025ms β 0.046ms β buftabline.buffers
0.021ms β 0.048ms β lewis6991.telescope
0.024ms β 0.031ms β buftabline
0.035ms β 0.019ms β cmp_buffer
0.019ms β 0.035ms β buftabline.utils
0.021ms β 0.030ms β buftabline.highlights
0.020ms β 0.032ms β buftabline.tabpage-tab
0.019ms β 0.030ms β buftabline.options
0.020ms β 0.026ms β buftabline.tabpages
βββββββββββββ΄βββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total resolve: 54.337ms, total load: 34.257ms
βββββββββββββ¬βββββββββββββ
Resolve β Load β
βββββββββββββΌβββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Time β Time β Module
βββββββββββββΌβββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
6.357ms β 6.796ms β Total
βββββββββββββΌβββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
0.041ms β 2.021ms β octo.writers
0.118ms β 0.160ms β lewis6991.plugins
0.050ms β 0.144ms β octo.date
0.035ms β 0.153ms β octo.utils
0.057ms β 0.099ms β octo.model.octo-buffer
0.047ms β 0.105ms β packer
0.058ms β 0.080ms β octo.colors
0.121ms β 0.015ms β gitsigns.cache
0.082ms β 0.037ms β packer.load
0.107ms β 0.008ms β gitsigns.debounce
0.048ms β 0.064ms β octo.config
0.048ms β 0.061ms β octo.graphql
0.049ms β 0.051ms β octo
0.043ms β 0.057ms β vim.diagnostic
0.085ms β 0.013ms β gitsigns.highlight
0.065ms β 0.032ms β octo.base64
0.035ms β 0.060ms β vim.lsp
0.056ms β 0.035ms β octo.gh
0.045ms β 0.045ms β octo.mappings
0.026ms β 0.060ms β octo.reviews
0.037ms β 0.045ms β packer.plugin_utils
0.030ms β 0.049ms β octo.reviews.file-panel
0.018ms β 0.056ms β vim.lsp.util
0.043ms β 0.030ms β packer.log
0.036ms β 0.032ms β packer.util
0.032ms β 0.035ms β octo.reviews.file-entry
0.021ms β 0.045ms β packer_compiled
0.052ms β 0.014ms β octo.model.body-metadata
0.033ms β 0.027ms β octo.reviews.layout
0.014ms β 0.047ms β nvim-treesitter.parsers
0.035ms β 0.024ms β vim.lsp.handlers
0.014ms β 0.044ms β nvim-lsp-installer.ui.status-win
0.046ms β 0.012ms β octo.completion
0.037ms β 0.021ms β octo.constants
0.032ms β 0.025ms β lewis6991
0.040ms β 0.017ms β persistence
0.030ms β 0.026ms β diffview.utils
0.035ms β 0.020ms β packer.result
0.015ms β 0.040ms β gitsigns.config
0.031ms β 0.024ms β packer.async
0.041ms β 0.013ms β vim.uri
0.044ms β 0.010ms β octo.model.thread-metadata
0.018ms β 0.035ms β gitsigns.debug
0.023ms β 0.030ms β github_dark
0.030ms β 0.023ms β packer.jobs
0.039ms β 0.013ms β buftabline.build
0.037ms β 0.014ms β octo.model.title-metadata
0.025ms β 0.025ms β vim.lsp.buf
0.022ms β 0.027ms β gitsigns
0.027ms β 0.022ms β lewis6991.status
0.016ms β 0.032ms β gitsigns.git
0.026ms β 0.020ms β octo.window
0.033ms β 0.012ms β octo.folds
0.037ms β 0.008ms β trouble.providers.lsp
0.016ms β 0.028ms β vim.lsp.protocol
0.028ms β 0.016ms β octo.signs
0.028ms β 0.014ms β null-ls
0.027ms β 0.014ms β octo.reviews.renderer
0.018ms β 0.024ms β trouble.view
0.017ms β 0.025ms β luasnip.nodes.snippet
0.023ms β 0.018ms β colorizer.nvim
0.017ms β 0.024ms β vim.lsp._snippet
0.015ms β 0.025ms β nvim-treesitter.install
0.018ms β 0.022ms β plenary.async.structs
0.018ms β 0.021ms β dirvish
0.027ms β 0.012ms β octo.ui.bubbles
0.019ms β 0.020ms β treesitter-context
0.015ms β 0.024ms β vim.lsp.diagnostic
0.016ms β 0.023ms β vim.lsp.rpc
0.022ms β 0.016ms β trouble
0.022ms β 0.016ms β null-ls.helpers.generator_factory
0.020ms β 0.017ms β luasnip
0.014ms β 0.023ms β plenary.job
0.026ms β 0.011ms β lewis6991.cmp
0.027ms β 0.010ms β trouble.providers
0.022ms β 0.014ms β nvim-treesitter.query
0.018ms β 0.018ms β vim.treesitter.highlighter
0.017ms β 0.018ms β nvim-treesitter.shell_command_selectors
0.014ms β 0.021ms β nvim-treesitter.configs
0.025ms β 0.010ms β lewis6991.floating_man
0.022ms β 0.012ms β vim.keymap
0.013ms β 0.021ms β cmp.entry
0.024ms β 0.010ms β lspconfig.server_configurations.bashls
0.018ms β 0.016ms β gitsigns.hunks
0.017ms β 0.017ms β gitsigns.status
0.014ms β 0.019ms β cmp.core
0.018ms β 0.015ms β spellsitter
0.014ms β 0.019ms β colorizer
0.024ms β 0.009ms β diffview.bootstrap
0.016ms β 0.016ms β null-ls.utils
0.021ms β 0.011ms β nvim-treesitter.info
0.022ms β 0.010ms β vim.highlight
0.016ms β 0.016ms β null-ls.info
0.019ms β 0.013ms β cmp_path
0.026ms β 0.006ms β cmp.utils.autocmd
0.021ms β 0.011ms β foldsigns
0.014ms β 0.018ms β lewis6991.null-ls
0.018ms β 0.013ms β cmp.view
0.017ms β 0.014ms β null-ls.client
0.016ms β 0.015ms β gitsigns.manager
0.013ms β 0.018ms β cmp.view.custom_entries_view
0.015ms β 0.015ms β nvim-lsp-installer.ui.display
0.020ms β 0.010ms β null-ls.methods
0.016ms β 0.014ms β plenary.async.control
0.019ms β 0.011ms β null-ls.diagnostics
0.014ms β 0.015ms β luasnip.util.util
0.017ms β 0.013ms β gitsigns.current_line_blame
0.013ms β 0.016ms β buftabline.buftab
0.015ms β 0.015ms β trouble.util
0.015ms β 0.015ms β luasnip.config
0.019ms β 0.010ms β plenary.async.async
0.018ms β 0.012ms β nvim-treesitter.tsrange
0.021ms β 0.007ms β cmp_nvim_lua
0.014ms β 0.015ms β vim.treesitter.query
0.015ms β 0.014ms β cmp.source
0.014ms β 0.015ms β vim.treesitter.languagetree
0.012ms β 0.016ms β nvim-lsp-installer._generated.filetype_map
0.015ms β 0.014ms β nvim-lsp-installer.servers
0.014ms β 0.014ms β lspconfig.util
0.011ms β 0.017ms β cmp
0.015ms β 0.013ms β cmp.view.wildmenu_entries_view
0.021ms β 0.007ms β lspconfig.server_configurations.jedi_language_server
0.015ms β 0.013ms β lua-dev
0.018ms β 0.010ms β gitsigns.util
0.014ms β 0.014ms β vim.lsp.codelens
0.017ms β 0.011ms β plenary.async.util
0.013ms β 0.014ms β null-ls.sources
0.015ms β 0.012ms β nvim-treesitter.query_predicates
0.013ms β 0.015ms β luasnip.nodes.choiceNode
0.015ms β 0.013ms β null-ls.helpers.diagnostics
0.017ms β 0.011ms β trouble.renderer
0.015ms β 0.013ms β luasnip.nodes.node
0.014ms β 0.013ms β lua-dev.sumneko
0.013ms β 0.014ms β cmp.utils.window
0.021ms β 0.006ms β treesitter-context.utils
0.018ms β 0.009ms β cleanfold
0.015ms β 0.012ms β nvim-treesitter.ts_utils
0.012ms β 0.015ms β nvim-lsp-installer.installers.std
0.015ms β 0.012ms β nvim-lsp-installer.server
0.014ms β 0.012ms β lewis6991.lsp
0.016ms β 0.011ms β gitsigns.signs
0.020ms β 0.006ms β buftabline
0.019ms β 0.007ms β plenary.tbl
0.013ms β 0.013ms β nvim-lsp-installer
0.018ms β 0.008ms β plenary
0.015ms β 0.010ms β cmp_luasnip
0.019ms β 0.007ms β null-ls.logger
0.016ms β 0.010ms β vim.lsp.sync
0.016ms β 0.010ms β spaceless
0.017ms β 0.009ms β gitsigns.subprocess
0.016ms β 0.009ms β plenary.functional
0.016ms β 0.010ms β buftabline.buffers
0.016ms β 0.009ms β vim.lsp.log
0.019ms β 0.006ms β cmp_tmux
0.013ms β 0.012ms β luasnip.nodes.dynamicNode
0.017ms β 0.008ms β vim.treesitter
0.013ms β 0.013ms β nvim-lsp-installer.process
0.013ms β 0.012ms β luasnip.util.environ
0.015ms β 0.009ms β lewis6991.treesitter
0.015ms β 0.010ms β null-ls.config
0.019ms β 0.006ms β ts_context_commentstring
0.013ms β 0.012ms β cmp_buffer.buffer
0.018ms β 0.007ms β null-ls.builtins.diagnostics.shellcheck
0.015ms β 0.010ms β null-ls.helpers.make_builtin
0.012ms β 0.012ms β diffview.path
0.016ms β 0.008ms β null-ls.builtins.diagnostics.gitlint
0.017ms β 0.007ms β trouble.providers.telescope
0.013ms β 0.011ms β diffview.oop
0.015ms β 0.010ms β cmp-rg
0.013ms β 0.011ms β cmp.utils.keymap
0.014ms β 0.011ms β nvim-treesitter
0.018ms β 0.007ms β cmp.utils.highlight
0.016ms β 0.008ms β lspconfig.server_configurations.sumneko_lua
0.015ms β 0.009ms β colorizer.trie
0.016ms β 0.007ms β plenary.vararg.rotate
0.015ms β 0.009ms β trouble.config
0.011ms β 0.012ms β lspconfig.configs
0.014ms β 0.009ms β null-ls.helpers.command_resolver
0.016ms β 0.007ms β cmp_tmux.source
0.016ms β 0.007ms β lspconfig
0.017ms β 0.006ms β plenary.vararg
0.012ms β 0.011ms β nvim-lsp-installer.installers.context
0.014ms β 0.009ms β cmp.view.native_entries_view
0.014ms β 0.009ms β cmp.config.default
0.017ms β 0.006ms β tmux.version.parse
0.016ms β 0.007ms β gitsigns.message
0.017ms β 0.006ms β persistence.config
0.013ms β 0.010ms β cmp_nvim_lsp_signature_help
0.012ms β 0.010ms β cmp.view.docs_view
0.017ms β 0.006ms β cmp.config.sources
0.013ms β 0.009ms β luasnip.nodes.restoreNode
0.014ms β 0.009ms β vim.ui
0.013ms β 0.010ms β luasnip.nodes.insertNode
0.013ms β 0.010ms β null-ls.state
0.014ms β 0.008ms β lspconfig.server_configurations.vimls
0.016ms β 0.006ms β plenary.errors
0.014ms β 0.008ms β null-ls.builtins.diagnostics.flake8
0.016ms β 0.006ms β null-ls.helpers
0.015ms β 0.008ms β null-ls.builtins.diagnostics.luacheck
0.014ms β 0.008ms β luasnip.util.mark
0.015ms β 0.008ms β cmp.utils.buffer
0.012ms β 0.010ms β nvim-lsp-installer.log
0.015ms β 0.007ms β luasnip.nodes.util
0.015ms β 0.007ms β null-ls.builtins.diagnostics.teal
0.016ms β 0.006ms β null-ls.helpers.range_formatting_args_factory
0.012ms β 0.010ms β nvim-treesitter.utils
0.015ms β 0.007ms β cmp.utils.event
0.013ms β 0.009ms β tmux.wrapper.tmux
0.015ms β 0.007ms β nvim-treesitter-playground
0.012ms β 0.010ms β cmp_buffer.source
0.015ms β 0.007ms β cmp_treesitter
0.013ms β 0.009ms β luasnip.util.parser
0.015ms β 0.006ms β trouble.providers.qf
0.014ms β 0.008ms β lewis6991.telescope
0.014ms β 0.007ms β cmp_tmux.tmux
0.014ms β 0.007ms β cmp_nvim_lsp.source
0.015ms β 0.006ms β plenary.reload
0.014ms β 0.008ms β buftabline.highlights
0.015ms β 0.006ms β trouble.providers.diagnostic
0.015ms β 0.007ms β nvim-lsp-installer.core.clients.github
0.014ms β 0.007ms β nvim-lsp-installer.installers.shell
0.016ms β 0.005ms β cmp-spell
0.014ms β 0.007ms β null-ls.builtins
0.013ms β 0.008ms β cmp_treesitter.lru
0.016ms β 0.005ms β buftabline.tabpages
0.015ms β 0.006ms β buftabline.options
0.016ms β 0.005ms β lua-dev.config
0.015ms β 0.006ms β nvim-lsp-installer.jobs.outdated-servers.cargo
0.014ms β 0.007ms β diffview.events
0.013ms β 0.008ms β nvim-lsp-installer.fs
0.013ms β 0.008ms β cmp.utils.feedkeys
0.013ms β 0.007ms β nvim-treesitter.caching
0.013ms β 0.008ms β nvim-lsp-installer._generated.language_autocomplete_map
0.013ms β 0.007ms β cmp.view.ghost_text_view
0.013ms β 0.008ms β cmp_nvim_lsp
0.013ms β 0.007ms β luasnip.nodes.functionNode
0.013ms β 0.007ms β nvim-lsp-installer.jobs.outdated-servers
0.012ms β 0.008ms β nvim-lsp-installer.ui.status-win.components.settings-schema
0.012ms β 0.009ms β lewis6991.cmp_gh
0.015ms β 0.006ms β luasnip.util.dict
0.013ms β 0.007ms β plenary.async
0.014ms β 0.006ms β nvim-lsp-installer.installers.composer
0.013ms β 0.007ms β cmp_treesitter.treesitter
0.014ms β 0.006ms β nvim-lsp-installer.jobs.outdated-servers.gem
0.015ms β 0.005ms β nvim-lsp-installer.platform
0.014ms β 0.006ms β buftabline.utils
0.013ms β 0.007ms β trouble.text
0.011ms β 0.008ms β cmp.config
0.013ms β 0.006ms β trouble.colors
0.012ms β 0.007ms β cmp.utils.misc
0.012ms β 0.008ms β nvim-lsp-installer.installers.npm
0.013ms β 0.007ms β lspconfig.server_configurations.clangd
0.012ms β 0.007ms β cmp_cmdline
0.011ms β 0.008ms β cmp.types.lsp
0.014ms β 0.006ms β vim.treesitter.language
0.014ms β 0.006ms β cmp.config.mapping
0.015ms β 0.004ms β luasnip.util.events
0.014ms β 0.005ms β luasnip.extras.filetype_functions
0.012ms β 0.007ms β cmp.utils.async
0.012ms β 0.007ms β cmp.config.compare
0.013ms β 0.005ms β cmp_emoji
0.015ms β 0.004ms β cmp_buffer
0.011ms β 0.007ms β nvim-lsp-installer.core.receipt
0.012ms β 0.007ms β nvim-lsp-installer.ui
0.013ms β 0.006ms β cmp.utils.api
0.012ms β 0.007ms β nvim-lsp-installer.core.fetch
0.013ms β 0.005ms β nvim-lsp-installer.jobs.pool
0.011ms β 0.007ms β nvim-lsp-installer.installers
0.012ms β 0.007ms β nvim-lsp-installer.data
0.013ms β 0.006ms β cmp.matcher
0.014ms β 0.005ms β tmux
0.011ms β 0.008ms β tmux.copy
0.013ms β 0.005ms β luasnip.util.types
0.014ms β 0.004ms β nvim-lsp-installer.servers.jedi_language_server
0.014ms β 0.004ms β nvim-lsp-installer.servers.vimls
0.014ms β 0.004ms β cmp.utils.cache
0.013ms β 0.006ms β luasnip.util.pattern_tokenizer
0.012ms β 0.006ms β luasnip.nodes.textNode
0.013ms β 0.005ms β null-ls.helpers.formatter_factory
0.013ms β 0.006ms β plenary.async.tests
0.013ms β 0.005ms β nvim-lsp-installer.jobs.outdated-servers.version-check-result
0.012ms β 0.005ms β nvim-lsp-installer.settings
0.011ms β 0.006ms β cmp.context
0.011ms β 0.006ms β cmp.utils.str
0.013ms β 0.004ms β luasnip.session
0.013ms β 0.005ms β nvim-lsp-installer.jobs.outdated-servers.composer
0.012ms β 0.006ms β nvim-lsp-installer.servers.sumneko_lua
0.012ms β 0.005ms β cmp_buffer.timer
0.011ms β 0.006ms β cmp.utils.char
0.013ms β 0.004ms β cmp.utils.pattern
0.011ms β 0.006ms β nvim-lsp-installer.installers.pip3
0.013ms β 0.004ms β luasnip.util.functions
0.013ms β 0.005ms β tmux.log.channels
0.012ms β 0.005ms β tmux.navigation
0.013ms β 0.005ms β trouble.folds
0.012ms β 0.005ms β nvim-lsp-installer.ui.status-win.server_hints
0.012ms β 0.005ms β nvim-lsp-installer.jobs.outdated-servers.pip3
0.012ms β 0.005ms β nvim-lsp-installer.jobs.outdated-servers.npm
0.011ms β 0.006ms β cmp.utils.debug
0.013ms β 0.004ms β nvim-lsp-installer.notify
0.011ms β 0.006ms β tmux.layout
0.013ms β 0.004ms β nvim-lsp-installer.servers.bashls
0.012ms β 0.004ms β nvim-lsp-installer.dispatcher
0.012ms β 0.005ms β buftabline.tabpage-tab
0.012ms β 0.005ms β nvim-lsp-installer.path
0.010ms β 0.006ms β tmux.resize
0.013ms β 0.004ms β cmp.types.vim
0.012ms β 0.004ms β nvim-lsp-installer.ui.state
0.011ms β 0.005ms β nvim-lsp-installer.installers.gem
0.012ms β 0.005ms β tmux.configuration.options
0.012ms β 0.005ms β nvim-lsp-installer.jobs.outdated-servers.git
0.012ms β 0.004ms β nvim-lsp-installer.jobs.outdated-servers.github_release_file
0.012ms β 0.005ms β cmp.types.cmp
0.013ms β 0.004ms β cmp.types
0.011ms β 0.005ms β tmux.log
0.011ms β 0.005ms β tmux.navigation.navigate
0.012ms β 0.005ms β tmux.configuration
0.012ms β 0.004ms β nvim-lsp-installer.jobs.outdated-servers.github_tag
0.011ms β 0.005ms β tmux.layout.parse
0.012ms β 0.004ms β nvim-lsp-installer.jobs.outdated-servers.jdtls
0.011ms β 0.005ms β tmux.log.convert
0.011ms β 0.005ms β tmux.log.severity
0.011ms β 0.004ms β tmux.version
0.012ms β 0.004ms β nvim-lsp-installer.core.clients.eclipse
0.011ms β 0.004ms β nvim-lsp-installer.core.clients.crates
0.011ms β 0.004ms β tmux.configuration.logging
0.011ms β 0.004ms β tmux.wrapper.nvim
0.011ms β 0.004ms β tmux.configuration.validate
0.011ms β 0.004ms β tmux.keymaps
βββββββββββββ΄βββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total resolve: 6.357ms, total load: 6.796ms
Relevant Neovim PR's
libs: vendor libmpack and libmpack-lua [merged]
fix(vim.mpack): rename pack/unpack => encode/decode [merged]
fix(runtime): add compressed representation to &rtp [merged]
fix(runtime): don't use regexes inside lua require'mod' [merged]
fix(lua): restore priority of the preloader [merged]
refactor(lua): call loadfile internally instead of luaL_loadfile [merged]
feat(lua): startup profiling
Credit
All credit goes to @bfredl who implemented the majority of this plugin in https://github.com/neovim/neovim/pull/15436.