ready-4 IT

VS Code Kollision mit Bitdefender (vom Piepen zur Lösung)

Diese Website & mein Tooling – heute: VS Code Kollision mit Bitdefender

Heute hatte ich einen dieser Tage, an denen man erst denkt „Hardware kaputt?!" und am Ende ist es eine Kette aus:

  • 4 offenen Workspaces
  • Projekten auf einer langsamen HDD (Random I/O)
  • VS Code / Git File Watching
  • Bitdefender (bdservicehost.exe), der bei jedem Zugriff „mitliest"

Das Ergebnis: Windows wurde extrem langsam und hat sogar gepiept.

Ich schreibe das hier bewusst als Erfahrungsbericht — inklusive Copy/Paste‑Snippets — weil mir genau solche Artikel im Alltag helfen.

TL;DR (Quick Wins)

Wenn du keine Zeit für den ganzen Verlauf hast, starte hier:

1) VS Code: Git Autorefresh aus (bei großen Repos / langsamen Laufwerken ein Gamechanger)

// User Settings (settings.json)
{
  "git.autorefresh": false
}

2) VS Code: Watcher entschärfen (reduziert I/O + triggert Antivirus weniger)

{
  "files.watcherExclude": {
    "**/node_modules/**": true,
    "**/vendor/**": true,
    "**/.git/objects/**": true,
    "**/__pycache__/**": true,
    "**/.venv/**": true,
    "**/.pytest_cache/**": true
  }
}

3) Bitdefender: Projekte sind schon ausgeschlossen? Gut. Dann zusätzlich die VS‑Code‑Systempfade (Extensions/Cache) in die Ausnahmen.

4) Wenn möglich: aktive Repos auf SSD/NVMe legen. HDD + viele kleine Dateien ist die perfekte Performance-Falle.


Wie es angefangen hat: das Piepen

Symptom: Windows piept (bei mir so etwas wie „2× kurz … lange Pause … dann 2× kurz schneller"), aber:

  • nicht beim Boot,
  • sondern während Windows läuft,
  • und gleichzeitig wird alles zäh.

Das ist beunruhigend, weil man zuerst an BIOS-Beepcodes denkt. Bei mir war es aber kein Boot-Problem — es war ein „System ist überlastet und Input fühlt sich an wie blockiert".


Diagnose: Task Manager & Ressourcenmonitor

1) Task Manager

CPU war nicht der Täter (bei mir ~17%). Auffällig war:

  • Disk deutlich hoch!
  • VS Code (Code.exe) mit spürbarer Disk‑Last

resources_problems

2) Der entscheidende Blick: Active Time & Queue

Im Ressourcenmonitor (Reiter „Datenträger") sieht man zwei Dinge, die oft mehr sagen als „MB/s":

blocker_01

  • Active Time 100% auf der HDD
  • Queue Length hoch (Stau an Anfragen)

Das fühlt sich dann so an:

  • Tippen laggt,
  • Klicks werden „verschluckt",
  • das System reagiert zeitversetzt,
  • und es kann sogar zu Pieptönen kommen.

Der eigentliche Root Cause

Bei mir war es eine Kollision aus:

1) Viele kleine Dateien

  • Node: node_modules/ (zigtausende Files)
  • PHP: vendor/
  • Python: .venv/, __pycache__/
  • Git: .git/ (Objects, Index, Status-Reads)

2) VS Code Watcher + Git Autorefresh

  • VS Code fragt Git regelmäßig ab.
  • Git touchiert dabei extrem viele Dateien.

3) Bitdefender scannt parallel

  • bdservicehost.exe liest mit.
  • Selbst wenn der Datendurchsatz „nur" 10–20 MB/s ist, kann eine HDD durch Random I/O komplett am Limit sein.

4) Mehrere Workspaces gleichzeitig

  • 4 Fenster/Workspaces multiplizieren die Watcher‑Last.

Maßnahmen (Copy/Paste) + Begründung

A) VS Code / Cursor Einstellungen

Spalten
"git.autorefresh": false
User Settings
Verhindert permanentes Git‑Scannen im Hintergrund; reduziert I/O massiv.
files.watcherExclude für node_modules, vendor, etc.
User Settings
Tausende Dateievents weniger → weniger Disk‑Last → Antivirus wird seltener getriggert.
Große Workspaces auf SSD
Filesystem
HDD + Random I/O ist die schlechteste Kombi für Dev‑Repos.

Optional (wenn du ESLint/Prettier intensiv nutzt):

{
  "eslint.run": "onSave",
  "prettier.requireConfig": true,
  "editor.formatOnSave": true
}

Warum das hilft:

  • ESLint onType kann bei großen Monorepos gefühlt „dauerlaufen".
  • prettier.requireConfig verhindert, dass Prettier überall automatisch anspringt, wo es nicht soll.

B) Bitdefender Ausnahmen (Ordner)

Bitdefender akzeptiert typischerweise keine Wildcards wie **/node_modules/**. Das ist aber auch nicht nötig, wenn du deine Projekt-Roots sauber bündelst.

bitdefender_01

Empfohlene Ordner-Ausnahmen:

Spalten
Projekte (Root)
F:\\r4it und F:\\Vagrant
Deckt automatisch Unterordner ab (inkl. <code>node_modules</code>, <code>vendor</code>, <code>.venv</code>).
VS Code Extensions
%USERPROFILE%\\.vscode\\extensions
Verhindert Scans beim Laden/Updaten von Extensions.
VS Code User Data / Cache
%APPDATA%\\Code
Reduziert Schreib-/Leselatenzen durch Logs, Cache, State.
Git Installation (optional)
C:\\Program Files\\Git
Weniger Reibung bei Git‑Tooling.

C) Bitdefender Ausnahmen (Prozesse) – wenn ATD bei Ordnern nicht aktivierbar ist

Viele Bitdefender-UIs lassen Advanced Threat Defense (ATD) bei Ordnern nicht aktivieren. Dann hilft nur: Prozess-Ausnahmen.

Empfohlene Prozesse:

Spalten
VS Code
%LOCALAPPDATA%\\Programs\\Microsoft VS Code\\Code.exe
VS Code macht sehr viele Dateioperationen; ATD kann dabei bremsen.
Git
C:\\Program Files\\Git\\bin\\git.exe (oder cmd\\git.exe)
Git touchiert extrem viele Dateien; verhindert „Scanner dazwischen".
Node
C:\\Program Files\\nodejs\\node.exe
Node‑Tools + Watcher + npm arbeiten mit sehr vielen kleinen Dateien.
PHP
php.exe (je nach Setup)
Composer/Vendor‑I/O, Scans, Builds.
Python
python.exe (je nach Setup)
venv/cache/test caches.

Security‑Hinweis: Ausnahmen nur für vertrauenswürdige Ordner/Tools setzen. Ich nutze das als Performance‑Tradeoff für Dev‑Ordner, nicht für Downloads/Random‑ZIPs.


Warum node_modules / vendor hier so wichtig sind

Diese Ordner sind nicht „groß", weil sie viel MB haben — sondern weil sie viel Anzahl an Dateien haben.

HDDs sind bei „vielen kleinen Reads" brutal langsam. Watcher + Git + Antivirus macht daraus eine Dauer‑Warteschlange.


Fazit

Der größte „Aha"-Moment für mich war, wie viel Git Autorefresh im Zusammenspiel mit einer HDD auslösen kann.

Wenn du nur eine Sache sofort testen willst: git.autorefresh aus — und beobachten, was mit Queue Length passiert.

Wenn der Editor plötzlich träge wirkt (Typing-Lag, hohe CPU, Lüfter), ist es oft nicht „die Extension", sondern das Zusammenspiel aus File-Watchern und Antivirus-Scanning.

So sieht die Belonung aus!

resources_final

Das Ergebnis: Deutlich schnelleres Arbeiten. Die Queue Length sank von teilweise über 90.000 auf unter 15.000 — selbst mit mehreren geöffneten Workspaces.

Das hier ist eine pragmatische Checkliste — nimm nur die Punkte, die du brauchst.

Systeminformationen (eingekürzt) - OS: Windows 10 Home (2009) - CPU: Intel Core i9-13900KF - RAM: 32 GB - Storage: 1 TB NVMe (SSD) + 12 TB HDD (typ. 7200 RPM) - Controller: SATA AHCI + NVMe - VS Code: 1.106.3 - Bitdefender: Total Security Build 27.0.55.303 Rein rechnerisch hätte die Kombination aus moderner CPU, 32 GB RAM und NVMe+HDD die Last tragen können; der Engpass erklärt sich eher durch sehr hohe IOPS‑Last (viele kleine Dateioperationen) in Kombination mit AV‑Scans und Watcher‑Interaktionen.

Symptome

  • VS Code (oder Cursor/VSCodium) wird beim Tippen/Speichern langsam.
  • Git ist träge, git status dauert in großen Repos auffällig lang.
  • CPU-Last in Bitdefender/Antimalware oder im Watcher-Prozess.

Typische Ursache

  • Große Workspaces erzeugen viele Filesystem-Events.
  • Antivirus scannt die geänderten Dateien wiederholt.
  • Watcher triggert weitere Arbeit → Rückkopplungsschleife.

Empfohlene Maßnahmen

1) Workspace in Bitdefender (oder AV) ausschließen

  • Schließe den/die Root-Ordner aus, in denen deine Repos liegen.
  • Bei Vagrant/Shared-Folders auch diese Pfade ausschließen.

2) Tool-Caches / Temp-Ordner ausschließen Beispiele (anpassen):

  • node_modules/
  • .git/
  • Build-Output
  • große Caches (composer, npm, …)

3) Watcher-Last reduzieren Wenn du nicht überall Live-Watching brauchst:

  • generierte Ordner in VS Code vom Watching ausnehmen
  • riesige „Monorepo + Vendor + Build" Kombinationen vermeiden

Hinweis

  • Das ist keine Security-Beratung, sondern ein Performance/Produktivitäts-Tradeoff.
  • Date: 02.02.2026

Support the Journey & Development! 🚀

If my IT guides or the Snapmaker Wiki saved your project (or your hardware), I'd appreciate a coffee! ☕
Your support doesn't just cover hosting and testing costs—it also fuels the development of my apps and tools. Every donation helps me dedicate more time to coding solutions that make our tech-life easier. Thank you for being part of this!

☕ Donate via PayPal