Recommended Free Tools
There is no defensible “fastest Neovim distro” result here: comparable startup measurements for LazyVim, NvChad, AstroNvim, and a minimal configuration are not established. Neovim does provide a built-in startup trace, however, and you can use it to measure your own setup or design a fair comparison. The key is to define what “started” means and keep the machine, workload, cache state, and measurement method consistent.
What can—and cannot—be said about distro speed
Neovim’s documentation lists LazyVim, NvChad, and kickstart.nvim among popular configuration projects. It also says Neovim is not affiliated with or responsible for them, and recommends learning stock Neovim and adding settings incrementally over time. These are separate projects and configurations, not official performance tiers. Neovim’s introduction to its configuration ecosystem provides context, but not a speed ranking.
As an Amazon Associate I earn from qualifying purchases.
AstroNvim is another possible candidate for a comparison, but the available evidence does not establish a comparable startup result for it either. No measured figures are established here for LazyVim, NvChad, AstroNvim, or a minimal setup. A claim that one is fastest would require testing all of them under the same conditions.
What “startup time” measures depends on the endpoint
A startup number is only meaningful when the event being timed is clear. Possible endpoints include process launch, completion of Neovim’s startup trace, UI connection, or an editor that is visibly ready to use. These do not necessarily occur at the same time. A configuration may also feel different when opening a file than when launching into an empty buffer, so choose the workload that matches the question.
#1 Best Overall
- Empty launch: Measures the path to an editor without a representative file-opening task.
- File-opening launch: Measures startup plus work involved in opening a specified file. Use the same file and conditions for each configuration.
- Visible-ready launch: Measures when the interface is ready from the user’s perspective; specify how that state is detected.
Keep startup speed separate from feature completeness and setup cost. A distro can load functionality later, or require first-run installation or compilation. Those costs may matter to a reader, but they are not the same measurement as ordinary startup.
Measure Neovim startup with --startuptime
Neovim’s built-in --startuptime {fname} option writes timing messages to a file during startup. The trace can help identify time spent loading configuration and plugins, as well as opening the first file. Consult the official --startuptime documentation for the option’s behavior.
- Record the environment. Note the machine and CPU, operating system and version, terminal or UI, Neovim version, and power or performance state.
- Choose a workload and endpoint. Decide whether each run launches empty or opens the same representative file, and define the event at which timing stops.
- Run the trace. Launch Neovim with
--startuptimeand a trace filename, for examplenvim --startuptime startup.log. For a file-opening workload, use the same file on every run, such asnvim --startuptime startup.log path/to/example.lua. - Repeat under documented cache conditions. Say whether runs are cold or warm and how caches were reset or warmed. Keep the method consistent across configurations.
- Report the spread. Use repeated runs and summarize their variation rather than reporting only the best result. Keep the command, endpoint, and workload attached to the reported timings.
The exact endpoint represented by a trace should not be silently equated with a user-visible ready state. State what the chosen timing method captures.
Free tools Windows power users keep installed
One-click scans. No signup required.
Use --clean only as a limited baseline
Neovim’s --clean option mimics a fresh install by skipping user initialization and excluding user directories from runtimepath. It can provide a baseline for Neovim without the user configuration, but it does not represent a distro running with its normal settings. Describe that narrower scope if you include it. See the official --clean documentation.
How lazy.nvim profiling differs from the built-in trace
If a configuration uses lazy.nvim, its project documents both :Lazy profile and require("lazy").stats(). The stats include time to UIEnter, plugin totals, loaded-plugin count, and timing data. The project distinguishes accurate process CPU-time reporting on Linux and macOS from a timestamp-delta estimate; it also notes that CPU time can be higher than nvim --startuptime. See the lazy.nvim usage documentation.
These tools report different timing information. Do not put a --startuptime value and a lazy.nvim UIEnter or CPU-time value into one ranking as if they measured the same endpoint. If both are useful, present them separately and identify the profiler, endpoint, and platform.
Rank #4
What distro documentation says about loading strategy
NvChad
NvChad’s plugin documentation says, “We lazy load almost 95% of the plugins,” and recommends lazy-loading plugins as an efficiency measure for reducing startup time. This is NvChad’s description of its plugin-loading design—not an independently measured startup result and not proof that it starts faster than another distribution. The statement is in the NvChad plugin documentation.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →LazyVim
LazyVim documents an optional vim-startuptime extra configured with vim.g.startuptime_tries = 10. That setting describes the tool integration’s configured number of tries. It is not a published LazyVim startup result or a comparison with other distributions. See the LazyVim startup-time extra documentation.
Best Value
Neovim’s plugin guidance
Neovim’s Lua plugin guide recommends --startuptime for examining a plugin’s effect on startup. It also describes deferring require calls and putting filetype-specific initialization in ftplugin/{filetype}.lua as relevant configuration practices. These are profiling and configuration techniques, not distro benchmark results. See the official Lua plugin guide.
Checklist for a fair comparison
Before comparing configurations, publish the controls that make the result interpretable:
- Hardware and platform: Machine and CPU, OS and version, terminal or UI, and power or performance state.
- Configuration state: Neovim version, exact distro revision or lockfile, plugin state, and external dependencies.
- Workload: Empty launch or the same representative file, with a separate file-opening test if that is important to readers.
- Cache protocol: Cold or warm runs, plus how caches were reset or warmed.
- Measurement: Command or profiler and the precise timing endpoint. Keep distinct methods in separate results.
- Repetitions: Multiple runs and a summary of variation, not just the fastest observation.
- First-run work: Installation, compilation, and network activity should be identified and separated from ordinary startup.
This is a practical method for controlling the differences in scope and timing described by the tools; the cited documentation does not prescribe one universal benchmark protocol.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

