Optymalizacja wydajności
Pracujesz nad monorepo z 400 000 linii kodu w 12 pakietach. Cursor potrzebuje 30 sekund, zanim zacznie sugerować uzupełnienia. Tryb Agent wstrzymuje się na 10 sekund, zanim zacznie przeglądać pliki. Wskaźnik indeksowania kręci się od godziny. Zaczynasz się zastanawiać, czy Cursor po prostu nie działa w dużych projektach.
Działa. Ale duże projekty wymagają dostrojenia. Domyślnie Cursor indeksuje wszystko, ładuje każde rozszerzenie i używa domyślnych limitów pamięci zaprojektowanych dla małych projektów. Kilka celowanych zmian robi różnicę między powolnym doświadczeniem a natychmiastowymi odpowiedziami.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Konfigurację
.cursorignoreeliminującą szum indeksowania - Ustawienia pamięci i wydajności dostrojone dla dużych baz kodu
- Techniki audytu rozszerzeń do identyfikowania i wyłączania rozszerzeń pochłaniających zasoby
- Strategie redukcji narzutu kontekstowego bez utraty jakości AI
Najpierw napraw indeksowanie
Dział zatytułowany „Najpierw napraw indeksowanie”Indeksowanie jest zwykle głównym wąskim gardłem wydajności. Wyszukiwanie semantyczne Cursora indeksuje każdy plik, który widzi. W projekcie z 50 000 plików (wliczając node_modules, wyniki budowania i wygenerowany kod) większość indeksu to szum.
Plik .cursorignore
Dział zatytułowany „Plik .cursorignore”Utwórz plik .cursorignore w katalogu głównym projektu. Działa jak .gitignore, ale kontroluje konkretnie to, co Cursor indeksuje i przeszukuje:
Dla projektów Python dodatkowo wyklucz:
.venv/venv/__pycache__/*.pyc.mypy_cache/.pytest_cache/htmlcov/*.egg-info/Weryfikacja statusu indeksowania
Dział zatytułowany „Weryfikacja statusu indeksowania”Sprawdź wskaźnik indeksowania w dolnym pasku statusu Cursora. Jeśli pokazuje dużą liczbę indeksowanych plików, twój .cursorignore nie jest wystarczająco agresywny. Po aktualizacji pliku ignorowania przeindeksuj, otwierając paletę poleceń (Cmd/Ctrl+Shift+P) i uruchamiając “Reindex Codebase.”
Optymalizacja obciążenia rozszerzeniami
Dział zatytułowany „Optymalizacja obciążenia rozszerzeniami”Rozszerzenia to drugi co do wielkości czynnik obniżający wydajność. Każde zainstalowane rozszerzenie VS Code działa wewnątrz Cursora i konkuruje o pamięć i CPU.
Audyt rozszerzeń
Dział zatytułowany „Audyt rozszerzeń”- Otwórz panel Rozszerzenia (
Cmd/Ctrl+Shift+X) - Posortuj według “Installed”
- Dla każdego rozszerzenia zadaj pytanie: “Czy używam tego co tydzień?”
- Wyłącz rozszerzenia, których aktywnie nie używasz
- Zwróć szczególną uwagę na rozszerzenia uruchamiające serwery językowe (Python, Java, C++)
Rozszerzenia o dużym wpływie do przeglądu
Dział zatytułowany „Rozszerzenia o dużym wpływie do przeglądu”Te kategorie rozszerzeń zazwyczaj zużywają znaczne zasoby:
- Serwery językowe dla języków, których nie używasz — Jeśli pracujesz w projekcie TypeScript, wyłącz rozszerzenia Java, Python i C++
- Rozszerzenia lintujące duplikujące wbudowane możliwości Cursora
- Rozszerzenia wizualizacji git ze śledzeniem plików w czasie rzeczywistym
- Rozszerzenia formatowania kodu uruchamiające się przy każdym zapisie
Profile rozszerzeń specyficzne dla workspace
Dział zatytułowany „Profile rozszerzeń specyficzne dla workspace”Użyj ustawień workspace Cursora, aby włączać rozszerzenia tylko tam, gdzie są potrzebne:
{ "extensions.autoUpdate": false, "extensions.ignoreRecommendations": true}Możesz również wyłączyć konkretne rozszerzenia dla danego workspace za pomocą przełącznika workspace w panelu Rozszerzenia.
Ustawienia pamięci i edytora
Dział zatytułowany „Ustawienia pamięci i edytora”Zwiększenie alokacji pamięci
Dział zatytułowany „Zwiększenie alokacji pamięci”Dla dużych projektów Cursor może potrzebować więcej pamięci niż domyślna alokacja. Dodaj te ustawienia do settings.json:
{ "files.maxMemoryForLargeFilesMB": 4096, "search.maxResults": 20000, "editor.maxTokenizationLineLength": 20000}Redukcja obciążenia obserwatorami plików
Dział zatytułowany „Redukcja obciążenia obserwatorami plików”W dużych projektach obserwatorzy systemu plików zużywają znaczne zasoby:
{ "files.watcherExclude": { "**/node_modules/**": true, "**/dist/**": true, "**/build/**": true, "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, "**/coverage/**": true }}Optymalizacja wyszukiwania
Dział zatytułowany „Optymalizacja wyszukiwania”Wyklucz te same katalogi z wbudowanego wyszukiwania VS Code:
{ "search.exclude": { "**/node_modules": true, "**/dist": true, "**/build": true, "**/coverage": true, "**/*.min.js": true, "**/*.map": true }}Wydajność uzupełniania Tab
Dział zatytułowany „Wydajność uzupełniania Tab”Jeśli uzupełnianie Tab wydaje się wolne, te ustawienia pomogą:
{ "editor.quickSuggestions": { "other": true, "comments": false, "strings": true }, "editor.suggestOnTriggerCharacters": true, "editor.acceptSuggestionOnCommitCharacter": false}Wydajność worktree
Dział zatytułowany „Wydajność worktree”Jeśli używasz równoległych agentów z worktree, zoptymalizuj inicjalizację:
{ "setup-worktree": [ "pnpm install --frozen-lockfile", "cp $ROOT_WORKTREE_PATH/.env .env" ]}Używaj pnpm lub bun zamiast npm install — są znacznie szybsze przy inicjalizacji worktree, ponieważ mogą wykorzystać globalny cache pakietów.
Skonfiguruj czyszczenie, aby zapobiec rozrostowi dysku:
{ "cursor.worktreeCleanupIntervalHours": 6, "cursor.worktreeMaxCount": 10}Kiedy coś nie działa
Dział zatytułowany „Kiedy coś nie działa”Indeksowanie nadal wolne po zmianach w .cursorignore. Przeindeksuj jawnie przez paletę poleceń. Zmiany w pliku ignorowania mogą nie zadziałać do następnego pełnego przeindeksowania.
Uzupełnianie Tab całkowicie znika. Sprawdź, czy nie wyłączyłeś serwera języka TypeScript. Zweryfikuj również, czy twój projekt ma poprawny tsconfig.json — uzupełnianie Tab opiera się na serwisie języka TypeScript.
Odpowiedzi agenta są wolne, ale indeksowanie jest w porządku. Wąskim gardłem może być opóźnienie sieciowe do modelu AI, a nie lokalna wydajność. Spróbuj innego modelu (Claude Sonnet 4.5 jest szybszy niż Claude Opus 4.6) lub sprawdź swoje połączenie internetowe.
Worktree pochłaniają miejsce na dysku. Zmniejsz wartości cursor.worktreeMaxCount i cursor.worktreeCleanupIntervalHours w ustawieniach. Uruchom git worktree list, aby zobaczyć wszystkie aktywne worktree i git worktree prune, aby wyczyścić przestarzałe.
Co dalej
Dział zatytułowany „Co dalej”- Strategie dla dużych baz kodu — Wydajność jest fundamentem workflow dla dużych projektów
- Zarządzanie tokenami — Redukcja narzutu kontekstowego poprawia też szybkość odpowiedzi
- Niestandardowe reguły i szablony — Dobrze dobrane reguły zmniejszają przestrzeń wyszukiwania agenta