Windsurf v1.9544.35 — Memory Regression Analysis | AIMF Security
Performance Regression

Windsurf v1.9544.35 — Memory & CPU Regression Analysis

New AI context indexer consumes 73% of system RAM on 8 GB machines
Report Date: February 10, 2026  |  Platform: macOS 15.7.2 / Apple Silicon  |  Windsurf Build: 1.9544.35 (Feb 5, 2026)

1. Executive Summary

Windsurf version 1.9544.35, released February 5, 2026, introduced a new proprietary binary (language_server_macos_arm) that aggressively indexes all files in the workspace directory to provide AI context. On an 8 GB Apple Silicon machine with a 43 GB mixed-content workspace, this process consumed 4 GB of RAM and 125% CPU, rendering the system nearly unusable.

The same workspace operated without issue on prior Windsurf versions for over a year, including periods when the workspace exceeded 100 GB. The regression correlates exactly with the Feb 5 update.

Impact: 73% of total system memory consumed by Windsurf alone. 116 MB free RAM remaining. 50.6 million swap-outs recorded. System effectively unusable for concurrent work.

2. Key Metrics

4,039 MB
Language Server RAM
125.5%
CPU at Idle
5.8 GB
Total Windsurf Footprint
116 MB
Free RAM Remaining
50.6M
Swap-Outs
168 MB
Binary Size

3. Process Memory Breakdown

Top 10 processes by memory consumption at time of capture:

language_server_*
4,039 MB
Windsurf Helper ×1
920 MB
Wireshark
616 MB
WindowServer
600 MB
Windsurf Helper ×2
418 MB
Windsurf Helper ×3
223 MB
Finder
180 MB
VPN Client
173 MB
Electron (main)
111 MB
Activity Monitor
100 MB
Windsurf total: 4,039 + 920 + 418 + 223 + 111 + 85 + 69 + 56 = ~5,921 MB — 73% of 8,192 MB system RAM consumed by a single application.

4. Root Cause Analysis

4.1 The New Binary

# Binary location and metadata $ ls -lh .../Windsurf.app/.../windsurf/bin/ -rwxr-xr-x 2.6M Feb 5 00:02 fd -rwxr-xr-x 161M Feb 5 00:02 language_server_macos_arm -rw-r--r-- 1.1K Feb 5 00:01 fd.LICENSE # Process at runtime $ ps aux | grep language_server 125.5% 17.9% language_server_macos_arm --api_server_url ...

The language_server_macos_arm binary is a 168 MB proprietary AI context indexer that shipped with Windsurf v1.9544.35 on February 5, 2026. It continuously indexes all files in the workspace directory to feed context to the AI assistant (Cascade).

4.2 The Workspace Mismatch

Workspace Composition: What the Indexer Sees vs What the AI Needs Total Workspace: 43 GB — Indexed by language_server Attack Logs 12 GB Packet Captures 10 GB Testing Data 10 GB Other ~11 GB Src 13MB What AI needs 13 MB source code What indexer processes 43 GB (3,300x more) Indexer processes 3,300x more data than the AI actually needs
Figure 1: Workspace composition showing the massive disparity between indexed content and useful source code

4.3 File Types Being Indexed

File TypeSizeUseful to AI?Indexable?
.swift source files~13 MBYesYes
.md / .html docs~50 MBYesYes
.py / .sh scripts~5 MBYesYes
.pcap / .pcapng~10 GBNoNo (binary)
.gz / .tar.gz~12 GBNoNo (compressed)
.sqlite / .sqlite-shm~8 GBNoNo (binary DB)
.pklg (Bluetooth trace)~2 GBNoNo (binary)
.zip archives~1 GBNoNo (compressed)
~68 MB of useful text buried in 43 GB of binary data. The indexer does not distinguish between them.

5. Timeline

2025 — Early 2026
Workspace operated at 40–100+ GB with no memory issues on same hardware. Prior Windsurf versions used standard VS Code file watcher.
February 5, 2026
Windsurf v1.9544.35 installed. New language_server_macos_arm binary (168 MB) deployed to .../windsurf/bin/.
February 8–9, 2026
System performance degrades noticeably. Swap usage climbs to 50M+ swap-outs. Machine becomes sluggish during normal development.
February 9, 2026 — 17:59
Investigation reveals language_server_macos_arm consuming 4,039 MB RAM and 125.5% CPU. Total Windsurf footprint: 5.8 GB of 8 GB system RAM.
February 10, 2026
Workaround applied: .windsurf/settings.json with files.watcherExclude for heavy directories.

6. System Impact

8 GB System RAM Allocation language_server 4,039 MB Helpers x5 1,771 MB Other Apps ~1,590 MB OS 49.3% 21.6% 19.4% 1.4% Windsurf Total: 5,810 MB (73% of system RAM) Free RAM: 116 MB (1.4%)
Figure 2: System RAM allocation showing Windsurf consuming 73% of available memory

6.1 Swap Pressure

# System memory state at time of capture PhysMem: 7,516M used (1,257M wired, 2,071M compressor), 116M unused VM: 148T vsize, 5,702M framework vsize Swap: 48,140,174 swapins, 50,658,630 swapouts Load: 3.12, 5.92, 8.20
50.6 million swap-outs indicates severe memory pressure. macOS is continuously paging memory to SSD, which degrades both performance and SSD lifespan. The compressor is holding 2 GB of compressed pages — the system is doing everything it can to avoid complete memory exhaustion.

6.2 Comparative Impact by Machine Tier

MachineTotal RAMWindsurf %Free AfterImpact
M1 MacBook (base)8 GB73%116 MBUnusable
M1/M2 (16 GB)16 GB36%~10 GBDegraded
M2/M3 Pro (32 GB)32 GB18%~26 GBManageable
M3 Max (64 GB)64 GB9%~58 GBUnnoticeable
Equity concern: Users on 8 GB machines — students, early-career developers, researchers in emerging markets — are disproportionately impacted. The same tool is effectively unusable on base-tier hardware while invisible on high-end machines.

7. Binary Details

PropertyValue
Binary namelanguage_server_macos_arm
Size on disk168 MB (161 MB file + runtime)
ArchitectureARM64 (Apple Silicon native)
Install dateFebruary 5, 2026 00:02
Location.../Windsurf.app/.../windsurf/bin/
Launch args--api_server_url [redacted]
RAM at capture4,039 MB
CPU at capture125.5% (multi-threaded)
Companion binaryfd (2.6 MB) — file discovery tool

The fd binary bundled alongside is a known open-source file finder (MIT licensed, as indicated by fd.LICENSE). The language_server_macos_arm binary is proprietary to Windsurf and appears to use fd for workspace file discovery before indexing.

8. Workaround

Creating a .windsurf/settings.json in the workspace root with file watcher exclusions reduces the indexer's scope:

{ "files.watcherExclude": { "**/[large-binary-directories]/**": true, "**/[archive-directories]/**": true, "**/[test-data-directories]/**": true, "**/.git/objects/**": true, "**/node_modules/**": true }, "search.exclude": { "**/[large-binary-directories]/**": true, "**/[archive-directories]/**": true }, "files.exclude": { "**/*.pcap": true, "**/*.pcapng": true, "**/*.gz": true, "**/*.sqlite": true } }
Result: After applying exclusions and restarting Windsurf, the language server memory footprint is expected to drop from ~4 GB to under 500 MB. Requires Windsurf restart to take effect.

9. Recommendations for Windsurf Team

1. Respect .gitignore
The indexer should skip files and directories listed in .gitignore. If a file isn't tracked in version control, it's unlikely to be useful for AI context.
2. Skip binary file types by default
.pcap, .sqlite, .gz, .tar, .zip, .pklg, and other binary formats should be excluded from text indexing automatically.
3. Implement a memory ceiling
The language server process should have a configurable memory limit (e.g., 512 MB default) and gracefully degrade when approaching it, rather than consuming all available RAM.
4. Add configurable workspace scope
Allow users to specify which directories the AI should index, rather than defaulting to the entire workspace root. A "cascade.indexPaths" setting would solve this.
5. Test on 8 GB machines before release
Performance regressions that are invisible on 64 GB machines can be catastrophic on 8 GB machines. QA should include resource-constrained environments.

10. Methodology

Data was collected using standard macOS diagnostic tools: top -l 1 -o mem for process memory snapshots, ps aux for process details, du -sh for directory sizes, and ls -la for binary metadata. All PII (usernames, home directory paths, API URLs) has been redacted from this report. No reverse engineering of the proprietary binary was performed.