The Hidden Cost of Extensions

Your VS Code startup time might be silently sabotaging your productivity. A recent audit of a development setup with 34 installed extensions revealed a sluggish 4.2-second launch time. The culprit? A significant number of extensions, many of which were rarely, if ever, used. After a rigorous cleanup, the same setup now boots in a mere 1.1 seconds, a 75% improvement. This isn't about removing useful tools; it's about reclaiming performance by shedding unnecessary bloat.

The audit focused on identifying and removing extensions that contributed to slow startup times without providing daily value. The process itself is straightforward, leveraging VS Code's built-in tools to pinpoint performance bottlenecks. If your editor feels sluggish, a similar audit is likely long overdue.

How to Audit Your VS Code Setup

The first step in reclaiming your VS Code performance is to understand which extensions are consuming your precious startup time. VS Code provides a direct way to see this information. Open the command palette (Cmd/Ctrl + Shift + P) and type Show Running Extensions.

This command reveals a list of all currently active extensions, their individual activation times, and their overall impact on your editor's startup. During the audit, three extensions were flagged as consuming over 200ms each. Crucially, these were extensions that the developer did not use on a daily basis. Identifying these heavy, underutilized extensions is key to significant performance gains.

VS Code command palette showing the 'Show Running Extensions' command

What Was Deleted and Why

The audit resulted in the removal of 11 extensions that had not been touched in over six months. These extensions, while potentially useful at one point, had become dormant baggage. Their removal directly contributed to the dramatic reduction in startup time.

The specific extensions removed and the rationale behind their deletion include:

  • Remote - SSH: While essential for remote development, it was identified as a significant contributor to startup time. Its activation was deferred to only when a remote connection was actually initiated, rather than loading on every VS Code launch.
  • Live Share: Similar to Remote - SSH, Live Share's extensive features were deemed unnecessary for daily local development startup. Its loading was similarly deferred.
  • Docker: Although a powerful tool, the Docker extension's background processes and checks were impacting startup. The decision was made to only enable it when actively working on Docker-related projects.
  • GitLens: This extension, while incredibly popular for Git integration, can be resource-intensive. Its more advanced features, like blame annotations and history views, were configured to load on demand rather than immediately upon startup.
  • Prettier: While Prettier is vital for code formatting, its extension-specific background tasks were a minor drag. The focus shifted to ensuring it ran efficiently when needed, not as a constant background process.
  • ESLint: Similar to Prettier, ESLint's performance impact was minimized by configuring its background linting to be less aggressive during startup.
  • Path Intellisense: A convenience tool, its impact was deemed negligible but was part of the overall cleanup to ensure a lean setup.
  • Bracket Pair Colorizer: This popular extension for visually distinguishing code blocks was evaluated. While visually helpful, its processing overhead was deemed unnecessary for the core development workflow, especially with VS Code's native bracket pair colorization becoming more robust.
  • TODO Highlight: A simple utility for highlighting TODO comments. Its impact was minimal, but it was removed as part of the broader goal of streamlining the extension list.
  • Code Spell Checker: While useful, its background scanning could impact performance. The decision was made to rely on OS-level spell checking or more targeted linters.
  • IntelliCode: An AI-assisted code completion tool. While powerful, its resource usage during startup was a factor in the decision to defer its loading or disable it for simpler projects.

The guiding principle was simple: if an extension wasn't actively contributing to the immediate task at hand during editor launch, its activation needed to be delayed or it needed to be removed entirely.

Reconfiguration Strategies for Performance

Beyond simply deleting extensions, reconfiguring existing ones proved crucial. For extensions like Remote - SSH, Live Share, and Docker, the strategy was to disable their automatic startup and instead enable them only when their functionality was explicitly required. This is akin to only bringing out specific tools from your toolbox when you're about to use them, rather than having them all laid out on your workbench from the moment you start.

GitLens, a powerful but potentially heavy extension, saw its more intensive features configured to load on demand. This means that while the extension is present, features like detailed blame annotations or extensive history views only engage when you specifically request them, rather than running continuously in the background. Similarly, linters like ESLint and formatters like Prettier were adjusted to be less aggressive during the initial editor load, ensuring they run efficiently when code is saved or explicitly invoked.

The audit also identified that VS Code's native features, such as its built-in bracket pair colorization, have advanced to a point where some popular third-party extensions are becoming redundant. This highlights the importance of regularly evaluating whether built-in capabilities have surpassed the need for external add-ons.

The Result: A Leaner, Faster Editor

The outcome of this focused audit and reconfiguration is a VS Code instance that starts up in just 1.1 seconds. This isn't just a marginal improvement; it's a significant leap that directly impacts daily workflow. Developers can now open their editor and begin coding almost instantaneously, without the frustrating delay of waiting for extensions to load and initialize.

This case demonstrates that even with a substantial number of extensions installed (34 in this instance), performance can be dramatically improved by critically assessing each one. The key takeaway is that an extension's value isn't just in its features, but in its efficiency and necessity during the critical editor startup phase. If you're experiencing slow load times, it's time to perform your own VS Code audit.