Cursor met hoge CPU- of geheugendruk op de Mac: vind het drukke werk
Cursor kan een Mac om verschillende redenen traag laten aanvoelen: een drukke extensie, een grote werkruimte die wordt verwerkt, een langdurige AI-taak of een proces dat na het stoppen van het werk geheugen blijft verbruiken. Begin met het vinden welke actie de toename veroorzaakt. Een grote cachemap is geen bewijs dat het verwijderen ervan het CPU-gebruik oplost.
Houd één reproduceerbare vergelijking aan
Sla het project op en noteer de versie van Cursor. Open Activiteitenweergave, zoek op Cursor en vergelijk CPU en geheugen voordat je het project opent, terwijl je het probleem reproduceert en nadat de taak stopt. Houd voor elke test dezelfde repository en actie aan.
Als een kleine map normaal werkt maar een monorepo niet, is het bereik van de werkruimte een nuttige aanwijzing. Als een nieuwe chat reageert maar één lang gesprek niet, test dat dan apart. Als het gebruik gestaag stijgt bij een herhaalde belasting, noteer dan de groei en de verstreken tijd. Eén hoge meting op zichzelf bewijst geen geheugenlek.
Scheid de editor van het werk dat hij start
Een Cursor-sessie kan het editorvenster, extensies, een taalserver, terminals en een AI-taak omvatten. Een deel van dat werk kan doorgaan terwijl de editor inactief is. Controleer voordat je iets uitschakelt of een terminal nog een build, testwatcher, ontwikkelserver of model draait. Stop alleen een taak die je herkent, via de normale bediening van de terminal of toepassing, nadat je het werk hebt opgeslagen.
Vergelijk in Activiteitenweergave het drukke proces op drie momenten: met de werkruimte geopend maar zonder gestarte taak, tijdens de actie die traag aanvoelt, en nadat die actie is afgerond. Noteer de procesnaam en of het symptoom invoervertraging, hoge CPU of toenemend geheugengebruik is. Een hulpprocesnaam alleen wijst zelden de verantwoordelijke extensie aan, dus gebruik de volgende vergelijkingen om het te beperken.
Probeer de eigenlijke projectmap te openen in plaats van de bovenliggende map met meerdere repositories. Verplaats of verwijder het project niet om deze test uit te voeren. Als een kleinere werkruimte het resultaat verbetert, bepaal dan wat de bredere werkruimte bevatte: gegenereerde bestanden, de afhankelijkheden van een ander project, een actieve watcher of een taaltool die meer bestanden scant. Dit is bewijs over de omvang, geen reden om elke grote map uit te sluiten.
Een ontwikkelserver die herhaaldelijk uitvoer schrijft, kan bijvoorbeeld actief werk zijn dat de editor waarneemt. Een map uitsluiten en die server stoppen testen verschillende verklaringen. Als je beide tegelijk wijzigt, verlies je het onderscheid, dus noteer welke enkele wijziging de herhaalde actie beïnvloedt.
Test extensies voordat je de editor reset
De prestatiegids van Cursor raadt een run met uitgeschakelde extensies aan. Sla je werk op, sluit Cursor normaal af en start het vanuit Terminal met:
cursor --disable-extensions
Dit veronderstelt dat het shell-commando cursor is geïnstalleerd. Als het niet beschikbaar is, gebruik dan de Extensies-weergave van Cursor om niet-essentiële extensies uit te schakelen voor de vergelijking. Houd bij wat je hebt uitgeschakeld, zodat de test omkeerbaar is.
Herhaal dezelfde projectactie. Als het beter wordt, herstel dan extensies één voor één tot het symptoom terugkomt. Als het niet beter wordt, herstel dan de eerdere extensiestatus en ga verder. Beschouw een test met andere geopende bestanden niet als bewijs tegen een extensie, en verwijder niet meteen de hele map met gebruikersgegevens als volgende stap.
Beperk een geslaagde extendietest
Als de uitvoering met uitgeschakelde extensies dezelfde actie verbetert, installeer dan niet alle extensies opnieuw en gooi hun instellingen niet weg. Begin met de genoteerde ingeschakelde set en herstel er één tegelijk als er maar weinig kandidaten zijn. Bij veel extensies kan de helft tegelijk herstellen de groep sneller beperken, mits elke test hetzelfde project opent en dezelfde actie voltooit.
De groepsaanpak is een onderzoekshulp, geen bewijs dat er precies één defecte extensie is. Twee extensies kunnen op elkaar inwerken, en een taalextensie uitschakelen kan ook functies verwijderen die de belasting veroorzaken. Zodra een kandidaat opduikt, herhaal je de test met alle extensies die je echt nodig hebt ingeschakeld, behalve die kandidaat. Controleer codeaanvulling, diagnostiek en de build, naast de responsiviteit.
Als de laatste vergelijking nog steeds op één extensie wijst, noteer dan de naam en versie. Alleen in de werkruimte uitschakelen kan geschikter zijn dan elk project wijzigen, waar die optie bestaat. Als uitschakelen een vereiste functie breekt, zet de extensie dan terug en bewaar de reproductie voor de beheerder, in plaats van een snellere maar onvolledige editor als het gewenste resultaat te beschouwen.
Sluit gegenereerde uitvoer uit die je niet nodig hebt
AI-ondersteund werk kan build-uitvoer, geëxporteerde bundels, gegenereerde afbeeldingen en grote logbestanden opleveren. Een bovenliggende map openen die elk project bevat, kan veel meer materiaal blootstellen dan de taak nodig heeft. Open eerst de werkelijke projectroot.
Cursor documenteert .cursorignore om AI-toegang tot projectbestanden te beperken, met uitzonderingen voor terminal- en MCP-tools. De prestatiegids raadt aan grote gegenereerde mappen uit te sluiten. Dit is breder dan alleen een wijziging in indexering, en het stopt niet elke language server of filesystem watcher.
Voor een project waarin deze mappen echt gegenereerde uitvoer zijn, kan een bestand .cursorignore het volgende bevatten:
dist/
build/
.next/
Controleer de mappen eerst en behoud bestaande ignore-regels. Een map met de naam build kan in jouw project handmatig onderhouden buildscripts bevatten. Een patroon toevoegen verwijdert geen bestanden, maar kan nuttige context voor AI-functies weghalen. Controleer daarna de indexeringsstatus en dezelfde editoractie opnieuw.
Volg het proces dat nog werkt
| Waarneming | Wat je vervolgens onderzoekt |
|---|---|
| Het probleem verdwijnt zonder extensies | Herstel extensies één voor één |
| Alleen één grote werkruimte veroorzaakt het | Projectroot, gegenereerde uitvoer en taaltools |
| CPU komt tot rust wanneer een AI-taak eindigt | Taakbelasting en gelijktijdigheid |
| Geheugen blijft stijgen bij dezelfde herhaalde actie | Een reproduceerbaar rapport met versie en timing |
| De hele Mac wordt traag | Geheugendruk en andere actieve apps |
De gids over geheugendruk op de Mac legt uit waarom alleen gebruikt geheugen geen betrouwbaar alarmsignaal is. Een ongebruikte werkruimte sluiten kan een actieve belasting helpen zonder de inhoud ervan te verwijderen.
Controleer wat een uitsluiting veranderde
Inspecteer na het wijzigen van .cursorignore de bestandswijziging en test zowel de trage actie als een gewone vraag over code die toegankelijk moet blijven. Een kleinere zichtbare projectcontext is alleen nuttig als Cursor nog steeds de bron heeft die nodig is voor de taak. Verwijder alleen het nieuwe patroon als het iets belangrijks uitsloot; vervang het hele ignore-bestand niet door een leeg bestand.
Houd deze grenzen gescheiden. Git-ignore-regels bepalen hoe Git omgaat met niet-gevolgde bestanden. De AI-toegangsuitzonderingen van Cursor bepalen de gedocumenteerde AI-functies. Een taalserver, extensie of terminalwatcher heeft eigen gedrag. Hetzelfde patroon overal toevoegen zonder het drukke onderdeel te identificeren kan symptomen verbergen en nuttige functionaliteit verwijderen.
Als de CPU normaal is maar een antwoord traag binnenkomt, onderzoek dan de AI-aanvraag apart van het resourcegebruik van de editor. Als het geheugen bij elke herhaling stijgt, zelfs nadat het werk is afgerond, noteer dan meerdere vergelijkbare metingen en de verstreken intervallen, en test dan of de werkruimte opnieuw openen het patroon verandert. Dat is veel nuttiger voor een beheerder dan het hoogste getal dat tijdens een build is gezien.
Ruim alleen schijfresten op als schijfruimte het probleem is
Caches van Cursor, oude toolversies, sessiegeschiedenissen en worktrees hebben verschillende eigenaren en herstelbehoeften. Een worktree kan niet-gecommitte wijzigingen bevatten of een commit die nergens anders bestaat. Een chatgeschiedenis kan werk zijn dat je nog nodig hebt.
Gebruik de opruimgids voor AI-codeertools voor die aparte opslagtaak. Bij aanhoudende CPU- of geheugenproblemen stuur je Cursor het kleinste reproduceerbare geval, de versie en de extensievergelijking. Controleer logbestanden voordat je ze deelt, want ze kunnen projectnamen of code bevatten. Zo blijft het rapport over de werkelijke vertraging gaan en niet over een ongerelateerd opruimresultaat.