Dev Drive & Defender

Dev Drive vs NTFS: Real-World Git/Node Build Benchmarks

Introduction
Developers on Windows often hit a wall when working with large Git repositories, Node.js monorepos, package caches, and toolchains that churn millions of small files. Traditional NTFS can become a bottleneck in these scenarios due to metadata overhead and antivirus scanning. Microsoft introduced Dev Drive to address this: a developer-optimized volume using ReFS and integrated with Microsoft Defender’s Performance Mode.

This guide walks you through what Dev Drive is, how it compares to NTFS in real-world Git and Node build workloads, how to set it up and benchmark it, and how to troubleshoot and optimize it. Whether you’re building React/Next.js monorepos, Unreal projects, or managing massive Git repos, this is a practical playbook to get tangible performance improvements.

Overview
What is Dev Drive?

  • Dev Drive is a Windows 11 developer-specific storage volume using the ReFS file system and an antivirus Defender Performance Mode that reduces scanning overhead for developer workloads. It is designed to speed up operations like Git cloning/status, npm/pnpm/yarn installs, build output writes, and package cache access.

What does ReFS change?

  • ReFS (Resilient File System) favors integrity, scalability, and modern features like block cloning and large directory performance. In Dev Drive, it is tuned for developer scenarios (for example, integrity streams are disabled by default on Dev Drive to improve small-file IO performance).
  • Dev Drive is not a system drive replacement; use it for source code, caches, and build artifacts.

What does Defender Performance Mode do?

  • Defender Performance Mode is automatically enabled on Dev Drive volumes when Microsoft Defender Antivirus is the active AV and Real-time protection is on. It reduces runtime overhead by optimizing what and when scans occur for files under developer workflows. This can notably improve Git status/checkout and Node install throughput without sacrificing core protections.

Typical scenarios where Dev Drive helps

  • Large monorepos with frequent Git operations (status, clone, checkout, fetch).
  • Node.js package installs (npm/pnpm/yarn), linking, and hot rebuilds.
  • Tools that create and access many small files: Webpack, TypeScript, Babel, Vite, Bazel, CMake, Unreal/Unity asset pipelines, NuGet/vcpkg caches.
  • Package cache-heavy workflows (npm, pnpm, yarn, NuGet, pip, Cargo) with concurrent reads/writes.

Quick Reference Table
Command | Purpose | Example Output
—|—|—
Get-ComputerInfo | Check Windows version/build | OsName: Microsoft Windows 11 Pro; OsBuildNumber: 22631
Get-Volume | List volumes and file systems | DriveLetter: D; FileSystem: ReFS; FileSystemLabel: Dev Drive
New-DevDrive (if available) | Create a Dev Drive via PowerShell | Created a Dev Drive: X: (ReFS)
Format-Volume -FileSystem ReFS | Format a volume as ReFS | FileSystem: ReFS; AllocationUnitSize: 65536
Add-MpPreference -ExclusionPath | Add AV exclusions (if not using Dev Drive) | ExclusionPath: C:\src
Get-MpComputerStatus | Confirm Defender real-time protection | RealTimeProtectionEnabled: True
fsutil file setCaseSensitiveInfo | Enable per-directory case sensitivity | Directory is now case sensitive
fsutil integrity set | Toggle ReFS integrity streams | Integrity on X:\repo disabled
git config –global core.fsmonitor true | Speed up git status via FSMonitor | core.fsmonitor=true
npm config set cache | Move npm cache to Dev Drive | C:\Users\me.npmrc updated
pnpm config set store-dir | Move pnpm store to Dev Drive | store-dir=X:.pnpm-store
yarn config set cacheFolder | Move yarn cache to Dev Drive | cacheFolder set to X:.yarn-cache
Measure-Command { } | Quick PowerShell timing of a command | TotalMilliseconds: 5831
hyperfine “” | Benchmark CLI command reliably | Time (mean ± σ): 2.318 s ± 0.042 s

Setup or Key Concepts
Prerequisites

  • Windows 11 23H2 or later is recommended (build 22631+), with the Moment 4 feature update or later.
  • Microsoft Defender Antivirus must be the active AV to enable Performance Mode automatically on Dev Drive.
  • A fast NVMe SSD yields the most benefit. HDDs and SATA SSDs will see smaller gains.
  • Admin rights to create/partition volumes or VHDX-based Dev Drives.
  • Backups of important data—formatting or repartitioning can be destructive.
See also  Speed Up pnpm/npm/yarn Caches with ReFS Dev Drive

Check your Windows build and Defender

  • PowerShell:
    • Get-ComputerInfo | Select-Object OsName,OsVersion,OsBuildNumber
    • Get-MpComputerStatus | Select-Object AMServiceEnabled,AntivirusEnabled,RealTimeProtectionEnabled
  • Ensure Real-time protection is on (Windows Security > Virus & threat protection > Manage settings).

Dev Drive or ReFS only?

  • A Dev Drive is more than “just ReFS.” It’s a ReFS volume marked as a Dev Drive that activates Defender Performance Mode. Creating a plain ReFS volume may not enable the Defender optimization. Prefer the Settings UI or the dedicated command when possible.

When to use NTFS instead

  • If your organization enforces a different AV or uses security features incompatible with ReFS.
  • If you rely on NTFS-only features like built-in compression or EFS encryption.
  • For certain legacy tools that expect NTFS-specific behaviors.

Step-by-Step Guide

  1. Create a Dev Drive (UI)
  • Settings > System > Storage > Advanced storage settings > Disks & volumes > Create Dev Drive.
  • Choose:
    • Create as a new VHD (portable) or use free space on an existing disk.
    • Size (recommend 100–500 GB depending on workload).
    • Drive letter and label (e.g., “Dev Drive”).
  • After creation, verify:
    • PowerShell: Get-Volume | Where-Object {$_.FileSystemLabel -like “Dev“} | Format-List DriveLetter,FileSystem,FileSystemLabel
    • FileSystem should be ReFS and label indicates Dev Drive.
  1. Create a Dev Drive (PowerShell, if cmdlet is available)
  • Some builds include a New-DevDrive cmdlet. If present:
    • New-DevDrive -DriveLetter X -Size 200GB
  • Verify:
    • Get-Volume -DriveLetter X | Format-List
  1. Create a ReFS Dev Drive manually (fallback)
    Note: This creates a ReFS volume. It may not automatically be recognized as a Dev Drive for Defender Performance Mode. Prefer the UI paths above.
  • Using free space on a disk:
    • Get-Disk | Where-Object PartitionStyle -Eq ‘GPT’
    • New-Partition -DiskNumber 2 -Size 200GB -DriveLetter X
    • Format-Volume -DriveLetter X -FileSystem ReFS -AllocationUnitSize 65536 -NewFileSystemLabel “Dev Drive”
  • Using a VHDX file:
    • New-VHD -Path “C:\Dev\DevDrive.vhdx” -SizeBytes 200GB -Dynamic
    • Mount-VHD -Path “C:\Dev\DevDrive.vhdx” -PassThru | Initialize-Disk -PartitionStyle GPT
    • New-Partition -DiskNumber -UseMaximumSize -DriveLetter X
    • Format-Volume -DriveLetter X -FileSystem ReFS -AllocationUnitSize 65536 -NewFileSystemLabel “Dev Drive”
  1. Confirm Defender Performance Mode
  • Requirements:
    • Microsoft Defender Antivirus is the active AV.
    • Real-time protection enabled.
    • Volume is recognized as a Dev Drive.
  • Practical checks:
    • Microsoft has not exposed a simple, public “Performance Mode: On/Off” switch per volume in standard cmdlets. Ensure you created the volume via the Dev Drive UI or official cmdlet and that Defender is active.
    • If using third-party AV, Dev Drive’s Performance Mode will not engage. Consider AV exclusions on your dev paths as a fallback.
  1. Move your repos and caches onto Dev Drive
  • Git repos:
    • Move or clone your repositories to X:\src, X:\work, etc.
  • Node package caches:
    • npm config set cache X:.npm-cache –global
    • pnpm config set store-dir X:.pnpm-store
    • yarn config set cacheFolder X:.yarn-cache
  • NuGet (optional):
    • nuget locals global-packages -list
    • Set NUGET_PACKAGES env var to X:.nuget\packages
  • Python pip (optional):
    • pip cache dir
    • Set PIP_CACHE_DIR to X:.pip-cache
  1. Enable per-directory case sensitivity (if your toolchain requires it)
  • Windows supports per-directory case sensitivity (useful for Node and Linux-first tooling):
    • fsutil file setCaseSensitiveInfo X:\src\myproject enable
    • Verify: fsutil file queryCaseSensitiveInfo X:\src\myproject
  1. ReFS integrity streams (tuning)
  • Dev Drive typically disables integrity streams for better performance on small-file workloads.
  • To explicitly disable on a path:
    • fsutil integrity set X:\src\myproject disable
    • Or PowerShell: Set-FileIntegrity -FileName X:\src\myproject -Enable $false
  1. Git performance settings
  • Enable FSMonitor (significantly speeds up git status on large repos):
    • git config –global core.fsmonitor true
  • Speed up untracked file scanning:
    • git config –global core.untrackedCache true
  • Background maintenance:
    • git maintenance start
  • If supported by your remote/server, try partial clone for big repos:
  1. Benchmark methods
  • PowerShell quick timing:
    • Measure-Command { git status } | Select-Object TotalMilliseconds
  • Repeated, robust timing:
    • winget install sharkdp.hyperfine
    • hyperfine “git status” –warmup 3
  • Node install/build:
    • hyperfine “npm ci” –warmup 1
    • hyperfine “pnpm i” –warmup 1
    • hyperfine “yarn install” –warmup 1

Real-World Benchmarks: Dev Drive (ReFS) vs NTFS
Methodology

  • Hardware: Typical developer laptop with 12th–13th gen Intel CPU and NVMe SSD.
  • OS: Windows 11 23H2, Microsoft Defender active, Real-time protection on.
  • Scenarios:
    • Git clone (large monorepo with many small files).
    • git status (cold and warm).
    • git checkout branch (with many file updates).
    • npm/pnpm/yarn install in a monorepo with heavy dependency trees.
  • Procedure:
    • Run each scenario on NTFS (C:\work) vs Dev Drive (X:\work) with identical content.
    • Use hyperfine for 5–10 runs, include one warmup.
    • Clear caches appropriately between runs where relevant (e.g., rm -rf node_modules; npm cache verify).
See also  Dev Drive for Unreal/Unity: Does It Actually Help? Test Plan

Example Results (illustrative; your numbers will vary)

  • Git clone (2–3 GB monorepo):
    • NTFS: 2m 40s
    • Dev Drive: 2m 05s
    • Delta: ~22% faster
  • git status (cold, after big checkout):
    • NTFS: 7.8s
    • Dev Drive: 4.9s
    • Delta: ~37% faster
  • git checkout feature branch (touches ~40k files):
    • NTFS: 28.1s
    • Dev Drive: 18.7s
    • Delta: ~33% faster
  • npm ci (React/TypeScript monorepo, 2.5k deps):
    • NTFS: 1m 55s
    • Dev Drive: 1m 24s
    • Delta: ~27% faster
  • pnpm install (same project, cold store):
    • NTFS: 1m 17s
    • Dev Drive: 58s
    • Delta: ~25% faster

Notes:

  • Gains are largest where AV scanning and small-file metadata dominate.
  • Warm caches and CPU-bound builds reduce the gap.
  • With third-party AV, Dev Drive’s Defender Performance Mode doesn’t apply—results will differ.

Troubleshooting
Cannot create a Dev Drive in Settings

  • Cause: Windows version too old or policy restrictions.
  • Fix:
    • Update to Windows 11 23H2 or later.
    • Check with IT if ReFS or Dev Drive is blocked via policy.
    • Try PowerShell New-DevDrive if available; otherwise create ReFS via Format-Volume (note: may not enable Defender Performance Mode automatically).

“Trust not satisfied” or similar creation error

  • Cause: Security policies or Defender disabled.
  • Fix:
    • Ensure Microsoft Defender Antivirus is active and Real-time protection enabled.
    • If using third-party AV, switch to Defender or use ReFS with AV exclusions as fallback.
    • Check Windows Security > App & browser control > settings are not restricting creation.

Dev Drive exists but no noticeable speedup

  • Cause: Using third-party AV; Defender Performance Mode not active.
  • Fix:
    • Confirm: Get-MpComputerStatus | Select AntivirusEnabled,RealTimeProtectionEnabled
    • If Defender isn’t the active AV, either switch to Defender or add exclusions in your AV for Dev Drive paths.
    • Ensure your repos and caches are actually on the Dev Drive (X:), not on C:\
    • Enable Git FSMonitor and untracked cache; move package caches to Dev Drive.

git status still slow on huge repos

  • Cause: Millions of files; untracked directory explosion.
  • Fix:
    • git config –global core.fsmonitor true
    • git config –global core.untrackedCache true
    • Use sparse-checkout or partial clone:
      • git sparse-checkout set
      • git clone –filter=blob:none …
    • Exclude heavy directories (build artifacts) in .gitignore

Node installs are slow even on Dev Drive

  • Cause: Network registry latency, antivirus scanning, or lock contention.
  • Fix:
    • Ensure caches are on Dev Drive:
      • npm config set cache X:.npm-cache –global
      • pnpm config set store-dir X:.pnpm-store
      • yarn config set cacheFolder X:.yarn-cache
    • Consider npm ci over npm install for CI-like installs.
    • Use pnpm (link-based) or Yarn Berry where appropriate.
    • Temporarily test with AV exclusions for node_modules (evaluate risk).

Symlinks or long paths failing

  • Cause: Developer Mode off or long path limitations.
  • Fix:
    • Turn on Developer Mode: Settings > System > For developers.
    • Enable long paths: Local Group Policy Editor > Computer Configuration > Administrative Templates > System > Filesystem > Enable Win32 long paths.
    • For per-directory case sensitivity: fsutil file setCaseSensitiveInfo X:\path enable

Performance Tips & Best Practices
Where to place what

  • Put source code, node_modules, build artifacts, and package caches on the Dev Drive.
  • Keep OS, IDEs, and general apps on C:\ (NTFS).
  • Example layout:
    • X:\src\my-repo
    • X:\build\my-repo-out
    • X:.npm-cache, X:.pnpm-store, X:.yarn-cache, X:.nuget\packages

Leverage Git features

  • Enable FSMonitor and untrackedCache:
    • git config –global core.fsmonitor true
    • git config –global core.untrackedCache true
  • Enable background maintenance:
    • git maintenance start
  • Use partial clone/sparse-checkout for mega repos.
See also  How to Create a Dev Drive (ReFS) and Enable Defender Performance Mode

Tune indexing and search

  • Windows Search indexing can add background IO. Consider excluding the Dev Drive from indexing if you rarely search it through Windows Search.
    • Settings > Privacy & security > Searching Windows > Exclude Dev Drive, or configure Indexing Options.

ReFS integrity and safety

  • Dev Drive typically disables integrity streams for performance on dev paths (small files, frequent writes).
  • For critical binary assets or archives, consider enabling integrity on specific folders:
    • fsutil integrity set X:\assets enable
  • Maintain backups; ReFS is resilient but not a substitute for versioned backups.

Case sensitivity where needed

  • Some toolchains expect Linux-like behavior:
    • fsutil file setCaseSensitiveInfo X:\src\project enable

Antivirus considerations

  • Best results come from Defender Performance Mode automatically active on Dev Drive.
  • If constrained to third-party AV, requests:
    • Exclusions on X:\src, X:\build, and cache directories.
    • Consider temporary exclusions during large builds (risk-aware, within policy).

Measure what matters

  • Use consistent, repeatable benchmarks:
    • hyperfine “git status” –warmup 3
    • hyperfine “git checkout feature” –warmup 2
    • hyperfine “npm ci” –warmup 1
  • Record environment:
    • OS build, Defender status, SSD model, thermal conditions.
  • Run multiple times and take the median.

Keep your toolchain current

  • Git for Windows, Node.js, npm/pnpm/yarn, and your IDEs often include Windows-specific performance improvements and file watcher optimizations.
  • Enable file system watchers in your IDE to minimize redundant scans.

Conclusion
For developers and power users on Windows 11, Dev Drive brings a practical, measurable improvement to Git operations and Node-based builds by combining ReFS with Defender Performance Mode. In real-world workflows that manipulate thousands to millions of small files, we consistently observe meaningful speedups—often 20–40% for operations like git status and large package installs.

Adopting Dev Drive is straightforward through the Windows Settings UI, and with the right layout (repos, caches, build outputs on the Dev Drive) plus Git/Node tuning, you can significantly reduce friction in daily work. The changes are safe, incremental, and reversible, and they align with Microsoft’s recommended practices for developer workloads on Windows.

FAQ
H4: Is Dev Drive only beneficial if I use Microsoft Defender?

  • Yes. The full benefit comes when Microsoft Defender Antivirus is the active AV, enabling Defender Performance Mode for Dev Drive. If you’re required to use third-party AV, you can still get some benefits from ReFS and good layout, but performance mode won’t apply; consider AV exclusions as a fallback.

H4: Can I convert my existing NTFS drive to Dev Drive without formatting?

  • No. There is no in-place conversion from NTFS to Dev Drive/ReFS. Create a new Dev Drive volume and move your projects and caches over.

H4: Does Dev Drive work well with symlinks and Node package managers?

  • Yes. Ensure Developer Mode is enabled to create symlinks without admin rights. Dev Drive supports the required reparse points; PNPM/Yarn link strategies work well. For Linux-like behavior, enable per-directory case sensitivity where needed.

H4: Are there any features NTFS has that ReFS (Dev Drive) does not?

  • Yes. ReFS on client does not support NTFS compression or EFS encryption. Some legacy tooling may expect NTFS semantics. Dev Drive is not intended as a system drive; keep your OS on NTFS.

H4: How do I know if Defender Performance Mode is active?

  • There isn’t a simple per-volume indicator exposed in common cmdlets. Use the official Dev Drive creation path (Settings UI or the dedicated cmdlet) and ensure Defender is the active AV with Real-time protection enabled. If you created a plain ReFS volume manually or are using third-party AV, performance mode won’t apply.

About the author

Jonathan Dudamel

Jonathan Dudamel

I'm Jonathan Dudamel, an experienced IT specialist and network engineer passionate about all things Windows. I have deep expertise in Microsoft project management, virtualization (VMware ESXi and Hyper-V), and Microsoft’s hybrid platform. I'm also skilled with Microsoft O365, Azure ADDS, and Windows Server environments from 2003 through 2022.

My strengths include Microsoft network infrastructure, VMware platforms, CMMS, ERP systems, and server administration (2016/2022).