


How can I improve VS Code performance on Linux by changing file watcher settings?
Jul 13, 2025 am 12:38 AMTo improve VS Code performance on Linux, adjust inotify limits and configure file watcher exclusions. First, increase system-level inotify limits by editing sysctl.conf and adding fs.inotify.max_user_watches=524288, fs.inotify.max_queued_events=65536, and fs.inotify.max_user_instances=8192, then run sudo sysctl -p to apply changes. Next, edit VS Code's settings.json to exclude unnecessary files using "files.watcherExclude" for paths like /.git/objects/, /node_modules/, /tmp/, and */.log. Finally, reduce the number of open folders to minimize watcher load, especially avoiding unnecessary multi-root workspaces or large projects that trigger excessive watchers.
VS Code can sometimes feel sluggish on Linux, especially when working with large projects. One of the common culprits is the file watcher system — the part of VS Code that monitors files for changes in the background. If you're seeing high CPU usage or slow response times, tweaking these settings might help.

Understand What File Watchers Do
File watchers are responsible for keeping track of changes to files outside of VS Code. For example, if you save a file from another editor or run a script that modifies files, the file watcher picks up those changes and updates the editor accordingly.

The downside?
Linux systems have limits on how many files can be watched at once. By default, VS Code uses chokidar, which sits on top of the inotify system in Linux, and it can easily hit those limits when dealing with node_modules, large repositories, or multiple open folders.
This leads to performance issues like:

- Laggy UI
- High memory or CPU usage
- Warnings about "too many files watched"
Adjust System Limits for inotify
Since VS Code relies on inotify, increasing its limits can help prevent performance bottlenecks. You can do this by editing your system’s sysctl configuration.
Open a terminal and add these lines to /etc/sysctl.conf
or create a new file under /etc/sysctl.d/
:
fs.inotify.max_user_watches=524288 fs.inotify.max_queued_events=65536 fs.inotify.max_user_instances=8192
Then apply the changes:
sudo sysctl -p
This increases the number of files that can be monitored across all applications using inotify, not just VS Code.
Exclude Unnecessary Files in VS Code
Even with higher system limits, watching every file isn’t always necessary. You can reduce load by telling VS Code to ignore certain directories or file types.
Add this to your settings.json
:
"files.watcherExclude": { "**/.git/objects/**": true, "**/node_modules/**": true, "**/tmp/**": true, "**/*.log": true }
These patterns tell VS Code not to watch:
- Git internal files
- Node.js modules (which are often huge)
- Temporary folders
- Log files that change frequently
You can customize these paths depending on your project structure.
Use Fewer Open Folders
If you’re using multi-root workspaces or have multiple folders open, each one gets its own set of watchers. That adds up fast.
Try to:
- Keep only essential folders open
- Close any workspace folders you aren’t actively working in
- Consider splitting very large projects into smaller ones
Also, some extensions might spawn additional watchers behind the scenes, so fewer open folders = fewer surprises.
That's basically it. Fixing VS Code performance related to file watchers usually comes down to a mix of system-level tuning and smarter exclusions inside the editor. It's not complicated, but it makes a noticeable difference — especially on larger codebases.
The above is the detailed content of How can I improve VS Code performance on Linux by changing file watcher settings?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

There are three ways to change the default terminal in VSCode: setting through a graphical interface, editing settings.json file, and temporary switching. First, open the settings interface and search for "terminalintegratedshell" and select the terminal path of the corresponding system; secondly, advanced users can edit settings.json to add "terminal.integrated.shell.windows" or "terminal.integrated.shell.osx" fields and escape the path correctly; finally, you can enter "Terminal:SelectD through the command panel

When the "Timedoutwaitingforthedebuggertoattach" issue occurs, it is usually because the connection is not established correctly in the debugging process. 1. Check whether the launch.json configuration is correct, ensure that the request type is launch or attach and there is no spelling error; 2. Confirm whether the debugger is waiting for the debugger to connect, and add debugpy.wait_for_attach() and other mechanisms; 3. Check whether the port is occupied or firewall restricted, and replace the port or close the occupied process if necessary; 4. Confirm that the port mapping and access permissions are configured correctly in a remote or container environment; 5. Update VSCode, plug-in and debug library versions to solve potential

There are two ways to set environment variables for VSCode terminals on Linux: one is to use the terminal.integrated.env.linux configuration item to define variables that are only used by VSCode; the other is to modify the shell configuration file to take effect globally. 1. In VSCode, add variables such as "MY_VAR":"my_value" by setting the terminal.integrated.env.linux field. This method only affects the VSCode terminal; 2. Modify shell configuration files such as ~/.bashrc or ~/.zshrc and add exportMY

VSCode workspace is a .code-workspace file that saves project-specific configurations. 1. It supports multi-root directory, debug configuration, shortcut key settings and extension recommendations, and is suitable for managing different needs of multiple projects. 2. The main scenarios include multi-project collaboration, customized development environment and team sharing configuration. 3. The creation method is to save the configuration through the menu File>SaveWorkspaceAs.... 4. Notes include distinguishing between .code-workspace and .vscode/settings.json, using relative paths, and avoiding storing sensitive information.

To access the settings.json file of VSCode, you can directly open it through the command panel (Ctrl Shift P or Cmd Shift P). The default storage location of the file varies according to the operating system. Windows is in %APPDATA%\Code\User\settings.json, macOS is in $HOME/Library/ApplicationSupport/Code/User/settings.json, Linux is in $HOME/.config/Code/User/

To set debug environment variables in VSCode, you need to use the "environment" array configuration in the launch.json file. The specific steps are as follows: 1. Add "environment" array to the debugging configuration of launch.json, and define variables in key-value pairs, such as API_ENDPOINT and DEBUG_MODE; 2. You can load variables through .env files to improve management efficiency, and use envFile to specify file paths in launch.json; 3. If you need to overwrite the system or terminal variables, you can directly redefine them in launch.json; 4. Note that

ToimproveVSCodeperformanceonLinux,adjustinotifylimitsandconfigurefilewatcherexclusions.First,increasesystem-levelinotifylimitsbyeditingsysctl.confandaddingfs.inotify.max_user_watches=524288,fs.inotify.max_queued_events=65536,andfs.inotify.max_user_in

In VSCode, you can disable specific extensions by configuring .vscode/extensions.json and workspace settings. The specific steps are as follows: 1. Create or edit the .vscode/extensions.json file and add "ignoreRecommendations":true to ignore global recommendations; 2. Use the "recommendations" field in this file to specify only enabled extensions; 3. Open the workspace settings.json file and add configuration items such as "eslint.enable":false to disable support
