--- id: wiki-2026-0508-ide-stability-fix title: IDE Stability Fix category: 10_Wiki/Topics status: verified canonical_id: self aliases: [IDE crash fix, VSCode stability, Cursor stability] duplicate_of: none source_trust_level: A confidence_score: 0.85 verification_status: applied tags: [ide, vscode, cursor, debugging, frontend] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: TypeScript framework: VSCode/Cursor --- # IDE Stability Fix ## 매 한 줄 > **"매 IDE crash / freeze / OOM 의 root cause 는 대부분 extension memory leak, large file indexing, TS server overload"**. 매 2026 의 Electron-based IDE (VSCode, Cursor, Windsurf) — 매 동일 패턴. 매 systematic disable + heap profiling 으로 해결. ## 매 핵심 ### 매 흔한 원인 - **Extension memory leak**: 매 disposable 미해제, listener 누적. - **TS Server OOM**: 매 large monorepo (>500k LOC), `--max-old-space-size` 부족. - **File watcher exhaust**: 매 `node_modules` watch → fs.inotify limit. - **Renderer process freeze**: 매 large file (>10MB) 또는 minified bundle 열기. - **GPU process crash**: 매 macOS Metal driver 충돌. ### 매 진단 도구 - `Developer: Open Process Explorer` (VSCode) - `--inspect-extensions=9229` + Chrome DevTools - `code --status` — running extensions + memory. - macOS Activity Monitor — Code Helper (Renderer) 의 RAM 추적. ### 매 응용 1. Monorepo 의 TS server tuning. 2. AI extension (Copilot, Cursor) leak 진단. 3. WSL2 / Remote SSH 환경 stability. ## 💻 패턴 ### TS Server memory raise ```json // .vscode/settings.json { "typescript.tsserver.maxTsServerMemory": 8192, "typescript.tsserver.experimental.enableProjectDiagnostics": false, "typescript.disableAutomaticTypeAcquisition": true } ``` ### File watcher exclude ```json { "files.watcherExclude": { "**/node_modules/**": true, "**/.git/objects/**": true, "**/dist/**": true, "**/.next/**": true, "**/target/**": true }, "search.exclude": { "**/node_modules": true, "**/dist": true } } ``` ### Bisect extensions ```bash # 매 extension 중 어떤 것이 crash 원인인지 binary search code --disable-extensions # 매 모두 disable → 재현 X = extension 문제 # Help → Start Extension Bisect 로 자동 binary search ``` ### Heap snapshot 분석 ```bash # 매 extension host heap snapshot # Cmd+Shift+P → "Developer: Take Process Heap Snapshot" # Chrome DevTools 에서 .heapsnapshot 열어 분석 ``` ### Linux file watcher limit ```bash # inotify limit raise (default 8192 매 부족) echo fs.inotify.max_user_watches=524288 | \ sudo tee -a /etc/sysctl.conf sudo sysctl -p ``` ### Disable GPU acceleration (macOS crash) ```bash # 매 Metal driver issue → software rendering code --disable-gpu # 또는 settings.json "window.experimental.useSandbox": false ``` ### Cursor / AI extension throttle ```json { "cursor.cpp.disabledLanguages": ["plaintext", "markdown"], "github.copilot.editor.enableAutoCompletions": true, "github.copilot.advanced": { "length": 500 } } ``` ## 매 결정 기준 | 증상 | 첫 시도 | |---|---| | TS Server OOM | maxTsServerMemory 8GB | | 전체 freeze | --disable-extensions bisect | | GPU artifact | --disable-gpu | | File watch exhaust | watcherExclude + inotify limit | | Indexing 끝없음 | search.exclude + remove large dirs | **기본값**: settings.json 의 watcherExclude + maxTsServerMemory 부터 시작. ## 🔗 Graph - 부모: [[Cursor IDE]] - 응용: [[Monorepo|Monorepo Setup]] · [[Large-scale Application Refactoring]] - Adjacent: [[TypeScript Performance]] ## 🤖 LLM 활용 **언제**: IDE crash log 분석, settings.json tuning, extension 충돌 진단. **언제 X**: 매 일반 app crash — 매 Electron-specific 패턴 만. ## ❌ 안티패턴 - **무작정 reinstall**: 매 cause 찾지 않음 — 매 재발. - **Disable all extensions 영구**: 매 productivity 손실 — 매 bisect 후 specific 만 disable. - **Ignore log**: 매 `~/Library/Logs/Cursor/` 또는 `code --status` 가 직접적 단서. ## 🧪 검증 / 중복 - Verified (VSCode docs, Cursor support forum, GitHub issue tracker patterns). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — IDE crash 진단 + 7 fix patterns |