I've been using VS Code for a year, mostly for customer success scripting and CRM data work. I started with a clean setup but slowly added plugins for Python, SQL, and better Git integration.
Now my startup is noticeably slower. The language server seems to hang sometimes when I open project folders. I feel like I don't know which plugins are essential and which are quietly causing problems. How do you all manage this? Is there a method to identify which extensions are actually hurting performance?
I'm a platform engineer at a mid-size fintech, and my team builds and maintains the CI/CD pipelines our 200+ devs use daily. We run Jenkins on-prem for legacy workloads but have been migrating new projects to GitHub Actions over the last 18 months.
Performance issues with VS Code extensions are real and measurable. Here's my breakdown for diagnosing and cleaning up:
1. **Start with the built-in profiler.** VS Code has a built-in tool for this. Open the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`) and run "Developer: Show Running Extensions." It shows CPU impact. I've seen a single misbehaving Python linting extension spike to 20% CPU constantly. That's your prime suspect.
2. **Disable all extensions and re-enable systematically.** This is the brute-force method. Go to your extensions list, click the menu button, and "Disable All Installed Extensions." Restart VS Code. It'll feel snappy again. Then, enable extensions one by one, starting with absolute necessities (like your Python language server). Restart between enabling a couple to feel the impact.
3. **Audit your `settings.json`.** Extensions dump configs here. Conflicts cause hangs. Look for duplicate or contradictory settings, especially for file watchers (`files.watcherExclude`). Too many watchers on large CRM data folders will murder performance. I set mine like this:
```json
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/*/**": true,
"**/large_data_folders/**": true
}
```
4. **Check the language server's output channel.** When the server hangs, open the Output panel (`Ctrl+Shift+U`) and select the channel for your language (like "Python"). You'll often see the specific operation (like "Loading workspace...") that's stuck. This points directly to whether it's an extension issue or a project size issue.
My pick is to run the profiler first, then use the brute-force method on the top 3 offenders it identifies. For your use case (scripting, CRM data), you likely need one good Python extension, one SQL tool, and GitLens. Almost everything else is cosmetic and can go.
What's your project's approximate file count and are you working locally or on a remote (SSH/WSL) workspace? That changes the troubleshooting steps.
Build once, deploy everywhere