Introduction
If you write code on Windows, you’ve probably felt the pain of slow dependency installs, sluggish git status, or heavy antivirus overhead on huge source trees. Windows 11’s Dev Drive solves this by giving you a developer-optimized volume based on ReFS, paired with Microsoft Defender’s Performance Mode to reduce scanning overhead for trusted developer workloads. This guide explains exactly what Dev Drive and Performance Mode are, when they help, how to create and verify them, and how to tune and troubleshoot for maximum throughput.
What you’ll get:
- A practical explanation of Dev Drive, ReFS, and Defender Performance Mode
- Step-by-step instructions to create a Dev Drive via GUI or PowerShell
- How to verify that Performance Mode is enabled and effective
- Best practices for folder layout, exclusions, and integrity settings
- Troubleshooting playbook and benchmarking ideas
Use this as your definitive, bookmarkable playbook for speeding up Git, Node/PNPM/Yarn, NuGet, Gradle, Unreal/UBT builds, and large artifact caches on Windows 11.
H2: Overview: What Dev Drive, ReFS, and Defender Performance Mode Do
H3: Dev Drive in plain language
A Dev Drive is a special-purpose data volume for developer workloads on Windows 11. It uses ReFS (Resilient File System) and default settings tuned for developer patterns (millions of small files, frequent metadata updates, heavy read/write churn). Dev Drive is separate from your system drive and is intended to host:
- Source code and repos (.git, .hg)
- Dependency trees (node_modules, packages, NuGet, pip, Cargo, Gradle caches)
- Build intermediates and outputs (obj, bin, DerivedDataCache, Binaries/Intermediate)
- Toolchains, SDKs, and container layers (Docker image/cache data)
H3: Why ReFS helps
ReFS is a modern Windows file system designed for resiliency and performance. For developer workloads, its metadata design and default Dev Drive tuning can improve:
- Directory enumeration (faster git status, faster npm/pnpm/yarn operations)
- Small-file I/O (dependency trees, headers, shared object stubs)
- Snapshot-like behaviors and data integrity options designed to minimize overhead when not needed
H3: Microsoft Defender Performance Mode
Defender Performance Mode is a scanning profile that automatically applies to Dev Drive volumes when Microsoft Defender Antivirus is your active AV. It reduces antivirus overhead for trusted dev workloads while maintaining protection. The result: less friction during checkouts, installs, and builds.
Typical scenarios where Dev Drive shines:
- Front-end stacks (Node + NPM/Yarn/PNPM) with massive node_modules trees
- C/C++ builds (MSBuild, Ninja, CMake, Unreal/UBT) that hammer file metadata
- .NET/NuGet restore/build loops
- Python/pip/venv and scientific packages
- Java/Gradle/Maven caches
- Git operations over large monorepos or many submodules
- Docker image extraction and build cache on Windows
H2: Quick Reference Table (Commands You’ll Use Often)
Command | Purpose | Example Output
— | — | —
Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion’ | Check Windows version/build | DisplayVersion: 23H2; CurrentBuild: 22631
Get-Command -Name “DevDrive” | Check if Dev Drive cmdlets exist | CommandType: Function; Name: New-DevDrive
Get-Volume -FileSystem ReFS | List ReFS volumes | DriveLetter FileSystem Label HealthStatus Size Remaining; R ReFS DevDrive Healthy 476 GB 320 GB
fsutil fsinfo volumeinfo R: | Inspect volume info | File System Name: ReFS; Supports Integrity Streams: Yes
fsutil integrity query R:\src | Check ReFS integrity setting for a directory | Integrity on R:\src: DISABLED
fsutil integrity set R:\src disable | Disable integrity for heavy-churn folders | Successfully disabled integrity on R:\src
Get-MpComputerStatus | Verify Defender status | AntivirusEnabled: True; RealTimeProtectionEnabled: True
Get-MpPreference | View Defender exclusions | ExclusionPath: {R:.git, R:\node_modules}
Measure-Command { git -C R:\repo status } | Simple timing benchmark | TotalMilliseconds : 842.63
robocopy R:\dataset S:\dataset /E /NFL /NDL /NP /NJH /NJS | File copy benchmark | Times: Total: 0:00:12, Ended: …
Note: Replace R: and S: with your Dev Drive/NTFS letters as applicable.
H2: Setup and Key Concepts
H3: Prerequisites
- Windows 11 23H2 or later recommended (Dev Drive is generally available here). Some Moment updates on 22H2 also support Dev Drive, but 23H2+ is the safe baseline.
- Administrator rights to create/format a new volume or a VHDX-backed Dev Drive.
- Sufficient free space (at least 50 GB recommended, 100–250 GB is common).
- Microsoft Defender Antivirus as the active antivirus if you want Performance Mode. If a third-party AV is active, Performance Mode is not available.
- Backup important data before partitioning or major storage changes.
H3: Check your Windows version and Defender status
Run in PowerShell (as a normal user is fine):
-
Windows version
PowerShell:
Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion’ | Select-Object DisplayVersion, CurrentBuild, CurrentBuildNumber -
Defender status
PowerShell:
Get-MpComputerStatus | Select-Object AntivirusEnabled, AMServiceEnabled, RealTimeProtectionEnabled
AntivirusEnabled and RealTimeProtectionEnabled should be True for Performance Mode to apply once you create a Dev Drive.
H3: ReFS and Dev Drive support
- Dev Drive uses ReFS automatically when created via the Windows Settings Dev Drive wizard.
- Creating a generic ReFS volume outside the Dev Drive flow may be limited on some editions/builds. If you can’t format ReFS manually, use the Dev Drive wizard in Settings or upgrade to Windows 11 23H2+.
H2: Step-by-Step Guide
H3: Step 1 — Decide: GUI or PowerShell
- Easiest: Use Settings to create a Dev Drive (VHDX-backed or from unallocated disk space).
- Scriptable: Use PowerShell. Some builds provide a friendly New-DevDrive cmdlet. If not, you can still create a ReFS volume manually.
H3: Step 2 — Create a Dev Drive using the GUI (recommended)
- Open Settings > System > Storage.
- Click Advanced storage settings > Disks & volumes.
- Click Create Dev Drive.
- Choose:
- Create as a virtual disk (VHDX) stored on an existing drive, or
- Use unallocated space on a physical disk.
- Size: 100–250 GB is a good starting point for active repos and caches.
- Assign a drive letter (for example, R:) and a label (DevDrive).
- Finish and let Windows create and mount the new ReFS Dev Drive.
Verification:
- Press Win + X > Disk Management or run Get-Volume -DriveLetter R in PowerShell. You should see FileSystem ReFS and Label DevDrive.
H3: Step 3 — Create a Dev Drive via PowerShell (if cmdlet exists)
Check if the cmdlet is available:
PowerShell:
Get-Command -Name “DevDrive“
If you see New-DevDrive (or similar), you can use it:
PowerShell (example):
Creates a 200 GB Dev Drive on a VHDX file under C:\Dev\
New-Item -ItemType Directory -Path “C:\Dev” -Force | Out-Null
$VhdPath = “C:\Dev\DevDrive.vhdx”
Size example: 200GB
New-DevDrive -Size 200GB -VhdPath $VhdPath -DriveLetter R -Label “DevDrive”
Notes:
- Parameters may vary by build; use Get-Help New-DevDrive -Detailed for exact syntax.
- The Dev Drive cmdlet sets recommended defaults and ensures the volume is recognized as a Dev Drive so Performance Mode is applied.
H3: Step 4 — Create a ReFS Dev Drive manually (universal fallback)
If the New-DevDrive cmdlet isn’t available, you can still create a ReFS volume. There are two common approaches:
Option A: Back the Dev Drive with a VHDX file (keeps everything in one file)
PowerShell (Admin):
1) Create and mount a VHDX
$VhdPath = “C:\Dev\DevDrive.vhdx”
New-Item -ItemType Directory -Path “C:\Dev” -Force | Out-Null
New-VHD -Path $VhdPath -SizeBytes 200GB -Dynamic | Out-Null
Mount-VHD -Path $VhdPath -PassThru | Get-Disk | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -UseMaximumSize -DriveLetter R |
Format-Volume -FileSystem ReFS -NewFileSystemLabel “DevDrive” -Confirm:$false
Option B: Use unallocated space on a physical disk
PowerShell (Admin):
Replace 2 with the correct disk number from Get-Disk
Get-Disk
Initialize-Disk -Number 2 -PartitionStyle GPT
New-Partition -DiskNumber 2 -UseMaximumSize -DriveLetter R
Format-Volume -DriveLetter R -FileSystem ReFS -NewFileSystemLabel “DevDrive” -Confirm:$false
After creation:
-
Verify the ReFS volume:
PowerShell:
Get-Volume -DriveLetter R -
If you used a VHDX, ensure it auto-mounts at sign-in:
PowerShell (Admin):
$TaskName = “Mount DevDrive VHDX”
$Action = New-ScheduledTaskAction -Execute “PowerShell.exe” -Argument “-NoLogo -WindowStyle Hidden -Command"Mount-VHD -Path 'C:\Dev\DevDrive.vhdx'“”
$Trigger = New-ScheduledTaskTrigger -AtLogOn
Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Description “Auto-mount Dev Drive VHDX at logon” -User “$env:USERNAME” | Out-Null
H3: Step 5 — Confirm Microsoft Defender Performance Mode
Performance Mode is automatic on Dev Drive volumes when Microsoft Defender Antivirus is:
- The primary AV engine
- Real-time protection is enabled
Verify Defender is active:
PowerShell:
Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled
Optional UI check:
- Open Windows Security > Virus & threat protection.
- Scroll down to dev-related settings (Dev Drive). On current builds, Dev Drive volumes are recognized and managed here. If Defender isn’t your active AV, you’ll see messaging indicating that.
H3: Step 6 — Move developer workloads to the Dev Drive
Recommended layout on the Dev Drive (R: as example):
- R:\src — your repositories (clone here)
- R:\pkg — package caches (NuGet, npm/pnpm/yarn, pip, Cargo, Gradle)
- R:\build — build intermediates and outputs
- R:\tools — SDKs/toolchains that do heavy I/O
Set or move caches to Dev Drive:
-
npm
npm config set cache R:\pkg\npm-cache –global -
pnpm
pnpm config set store-dir R:\pkg\pnpm-store -
yarn
yarn config set cache-folder R:\pkg\yarn-cache -
NuGet/.NET
setx NUGET_PACKAGES R:\pkg\nuget-packages
setx DOTNET_NUGET_PACKAGES R:\pkg\nuget-packages -
pip
pip config set global.cache-dir R:\pkg\pip-cache -
Cargo (Rust)
setx CARGO_HOME R:\pkg\cargo
setx CARGO_TARGET_DIR R:\build\cargo-target -
Gradle
setx GRADLE_USER_HOME R:\pkg\gradle -
Docker Desktop (Windows engine)
In Settings > Resources > Advanced, set disk image location to a folder on R:\ (or configure “data-root” if using Linux kit with dockerd).
H3: Step 7 — Tune ReFS Integrity Streams (per-folder)
ReFS supports data integrity streams. For hot developer trees, disabling integrity on specific folders avoids extra overhead.
Check integrity:
PowerShell:
fsutil integrity query R:\src
Disable on heavy-churn folders (safe for intermediate data and caches):
PowerShell:
fsutil integrity set R:\src disable
fsutil integrity set R:\pkg disable
fsutil integrity set R:\build disable
You can apply this recursively by setting it on a top-level folder before populating it. Avoid disabling integrity on archival or critical data you want checksummed.
H3: Step 8 — Optional: Defender exclusions for specific paths
Dev Drive + Performance Mode is usually enough. If certain tools still run slowly, consider targeted exclusions for intermediates/caches:
PowerShell (Admin):
Add-MpPreference -ExclusionPath “R:\build”,”R:\pkg\pnpm-store”,”R:\pkg\nuget-packages”
Verify:
PowerShell:
(Get-MpPreference).ExclusionPath
Be cautious: exclude only non-security-critical, high-churn build paths.
H3: Step 9 — Quick benchmarking to validate gains
Simple, repeatable tests:
-
Git status
PowerShell:
Measure-Command { git -C R:\src\your-repo status } | Select-Object TotalMilliseconds -
Dependency install (example with pnpm)
PowerShell:
Measure-Command { pnpm install } | Select-Object TotalMilliseconds -
File copy (large small-file set)
PowerShell:
robocopy R:\dataset R:_scratch\dataset_copy /E /NFL /NDL /NP /NJH /NJS
Compare runs on your NTFS dev folder vs the Dev Drive. You should see lower times and/or better consistency on Dev Drive when Performance Mode is active.
H2: Troubleshooting
H3: I can’t create a Dev Drive in Settings (button missing or grayed out)
- Ensure you’re on Windows 11 23H2 or later.
- Check you have sufficient free space (50+ GB recommended).
- If using a managed device, your admin/organization may restrict the feature.
- Try Windows Update and reboot.
- As a fallback, create a VHDX-backed ReFS volume with PowerShell (Step 4, Option A).
H3: PowerShell errors when formatting ReFS
- Error: “ReFS is not supported” or ReFS option not present
- Upgrade to Windows 11 23H2+ and use the Dev Drive wizard in Settings.
- Some older/consumer editions limited manual ReFS formatting; the Dev Drive flow re-enables it for developer scenarios.
H3: New-DevDrive not recognized
- Your build might not include the convenience cmdlet. Use the manual ReFS approach in Step 4.
- Check for typos or function scope: Get-Command -Name “DevDrive“
H3: Defender Performance Mode not active
-
Ensure Microsoft Defender Antivirus is the active provider:
PowerShell:
Get-MpComputerStatus | Select AntivirusEnabled, RealTimeProtectionEnabled -
If a third-party AV is installed and active, Performance Mode is unavailable. Switch back to Microsoft Defender or consult your admin.
-
Make sure you created a Dev Drive (not just a generic NTFS volume). Performance Mode applies to Dev Drive volumes.
H3: Git operations are still slow on Dev Drive
-
Ensure repo and node_modules actually live on the Dev Drive (R:\src\repo).
-
Disable ReFS integrity on high-churn folders (Step 7).
-
Consider enabling Git FSMonitor and other optimizations:
PowerShell:
git config –global core.fsmonitor true
git config –global gc.auto 0 -
On Windows, also consider:
- Use the latest Git for Windows.
- Keep antivirus exclusions minimal but targeted (R:\build, R:\pkg\pnpm-store).
- Avoid placing huge repos in WSL file systems unless you build inside WSL too.
H3: My VHDX-backed Dev Drive doesn’t remount after reboot
- If you used the Settings wizard, it’s handled for you.
- If you created it manually, create a scheduled task at logon that runs:
PowerShell:
Mount-VHD -Path “C:\Dev\DevDrive.vhdx”
H3: “Access denied” or “in use” errors when formatting
- Close any Explorer windows or processes touching the target drive.
- Use Disk Management or diskpart to clean the target disk/partition if needed:
PowerShell (Admin):
diskpart
list disk
select disk
clean
convert gpt
exit
Then retry Step 4 Option B.
H3: Space pressure or fragmentation concerns
- ReFS handles allocation differently and generally resists pathological fragmentation better than NTFS for dev patterns.
- If space gets tight, performance can degrade. Keep 15–25% free space and consider expanding your VHDX or resizing the partition.
H2: Performance Tips & Best Practices
H3: Recommended folder layout
- R:\src — repos and working trees
- R:\pkg — caches (npm/pnpm/yarn, NuGet, pip, Cargo, Gradle)
- R:\build — intermediates and outputs (often the noisiest)
- R:\tools — SDKs/toolchains that do lots of small I/O
H3: Place noisy, redundant data on Dev Drive
- node_modules, pnpm store, .yarn cache
- NuGet and Gradle caches
- pip wheels/cache and virtual environments
- Unreal Engine DerivedDataCache and Intermediate
- Docker image/cache data
H3: Use integrity streams selectively
-
Default Dev Drive settings are tuned for performance. For the noisiest folders, explicitly disable integrity streams:
PowerShell:
fsutil integrity set R:\build disable
fsutil integrity set R:\pkg disable -
Keep integrity enabled (default) for important, less-frequently changing assets if you prefer extra resiliency.
H3: Keep Defender protections, but tune carefully
- Dev Drive + Performance Mode is designed to minimize overhead while preserving protection.
- If you must exclude, do it sparingly and only on reproducible, non-sensitive build artifacts.
H3: Measure improvements
- Always benchmark before/after with your real workloads (git status, dependency installs, build loops).
- Use Measure-Command for quick timings and robocopy for file churn simulations.
- Record a baseline so you can verify that future changes help, not hurt.
H3: Consider VHDX-backed Dev Drives
- Easy portability and cleanup.
- Simple expansion: create a larger VHDX, robocopy/migrate data, switch letters.
- Auto-mount at logon with a Scheduled Task if you created it manually.
H3: Keep your system current
- Windows cumulative updates often include performance and reliability improvements for ReFS and Dev Drive behavior.
H2: Conclusion
A Dev Drive on ReFS, paired with Microsoft Defender Performance Mode, is one of the highest-impact upgrades you can make to a Windows 11 development machine. It targets exactly the hot path of modern developer workflows: millions of small files, rapid metadata churn, and frequent dependency restores. With the steps above, you can create a Dev Drive in minutes, verify that Performance Mode is active, place your repos and caches where they benefit most, and tune integrity and exclusions to match your tolerance for overhead versus protection. The result is faster Git, quicker installs/builds, and a smoother, more predictable developer experience—all without compromising security.
H2: FAQ
H4: Can I convert my existing NTFS dev folder into a Dev Drive without moving data?
No. A Dev Drive is a separate ReFS volume. Create the Dev Drive first, then move or clone your data into it.
H4: Do I need Microsoft Defender for Performance Mode?
Yes. Defender Performance Mode is available only when Microsoft Defender Antivirus is your active AV. If a third-party AV is active, Performance Mode won’t apply to the Dev Drive.
H4: Is BitLocker supported on a Dev Drive?
Yes. You can enable BitLocker on Dev Drive volumes. It works with ReFS and is recommended on laptops and shared machines.
H4: How big should my Dev Drive be?
For active development, 100–250 GB is a good starting point. If you host large monorepos, containers, or Unreal projects, consider 500 GB or more. Keep 15–25% free space for best performance.
H4: What should I put on the Dev Drive versus leaving on C:?
Put high-churn developer data on the Dev Drive: repos, node_modules, caches, build outputs, and container data. Leave lower-churn apps, documents, and system files on C:. If you keep SDKs/toolchains on Dev Drive, ensure your PATH and tool configs point there.
End of guide.
