Only execute expensive operations when they are actually necessary. Avoid paying performance costs for functionality that may not be used or when conditions don't require the expensive computation.
Only execute expensive operations when they are actually necessary. Avoid paying performance costs for functionality that may not be used or when conditions don’t require the expensive computation.
Key strategies:
Examples:
-- Bad: Always pay the fs_stat cost
local stat = vim.uv.fs_stat(f)
-- Good: Only pay the cost when needed
if follow_param then
local stat = vim.uv.fs_stat(f)
end
-- Bad: Eager loading causes performance hit
complete = vim.treesitter.language._complete,
-- Good: Lazy loading avoids eager initialization
complete = function(...) return vim.treesitter.language._complete(...) end,
-- Bad: Everyone pays the cost regardless of usage
vim.api.nvim_create_autocmd('DiagnosticChanged', {
callback = function() -- expensive string formatting end
})
-- Good: Only setup when default statusline is used
if using_default_statusline then
vim.api.nvim_create_autocmd('DiagnosticChanged', {
callback = function() -- expensive string formatting end
})
end
This approach prevents unnecessary performance overhead by ensuring expensive operations are only executed when their results will actually be used or when the conditions genuinely require them.
Enter the URL of a public GitHub repository