Windows Dev Drive快速上手体验

Windows 11 23H2引入了Windows Dev Home和Dev Drive,后者基于ReFS文件系统,提供了性能提升和数据可靠性。在基准测试中,Dev Drive在某些开发命令下表现优于NTFS,平均领先约5秒。虽然Dev Home的功能尚未完全可用,但Dev Drive在日常开发中仍显示出一定的优势,值得开发者尝试。

Windows 11 23H2的Windows Dev Home是一个新的开发者中心,提供了一些功能来改进Windows开发。此外,Windows 11 23H2还提供了Dev Drive,这是一个基于ReFS的新存储卷,具有性能提升和数据可靠性。在基准测试中,发现ReFS在开发命令下性能更好,平均领先幅度为5秒左右,但NTFS的性能也相当不错。总的来说,Dev Home和Dev Drive对于Windows开发者来说是有一定帮助的。

随着Windows 11 23H2发布的除了大名鼎鼎的Copilot,还有Windows Dev Home。比起感觉噱头大于实用性的Coplilot,个人更关注Dev Home对Windows开发有什么改进之处。

没什么用的Dev Home

这里先简单谈谈另一个更新——开发者中心(Dev Home),就是下面这玩意儿:

根据官网,它提供以下功能:

  • 快速仪表盘监控电脑和开源工作流
  • 提供一个配置WSL的GUI环境,包括系统配置和存储库管理
  • Windows开发功能集合,如存储库管理、Dev Drive和WinGET等

由于它的插件基本还处于不可用阶段,定义为没用,不如终端。

有一点新东西的Dev Drive

Dev Drive是基于ReFS(Resilient File System,弹性文件系统),针对开发者优化推出的新存储卷。据微软官方介绍,整体构建时间性能提升30%。

ReFS

底层详见:https://learn.microsoft.com/zh-cn/windows-server/storage/refs/refs-overview

ReFS(Resilient File System,弹性文件系统)是微软推出的新文件系统,是1992年推出的NTFS的继任者。它具有以下特性:

  • 复原性

    • 自动完整性校验和主动纠错
    • 完整性流:利用元数据校验文件损坏
  • 性能优化

    • 加快奇偶校验过程
    • 加快虚拟化操作(加快WSL在其上工作的性能)

      • 块克隆可加快复制操作的速度,并且能够实现快速、低影响的 VM 检查点合并操作;
      • 稀疏 VDL 允许 ReFS 将文件快速清零,从而将创建固定 VHD 所需的时间从几十分钟减少到仅仅几秒钟。
  • 极大文件支持:ReFS 设计为支持非常大的数据集(数百万 TB 字节),而不会对性能有负面影响

适用场景

NTFS仍能满足大部分基础需要,在某些特定场景下可以使用ReFS

FeatureReFSNTFS
最大文件名称长度255 个 Unicode 字符255 个 Unicode 字符
最大路径名称长度32K Unicode 字符32K Unicode 字符
文件大小上限35 PB(拍字节)256 TB
最大卷大小35 PB256 TB
  • 大型/私人服务器场景(面向Windows Server)提供更好的数据可靠性
  • 需要存储非常大的单个文件
  • 需要强大的数据可靠性和可恢复性

VHD & VHDX

VHDX 文件是虚拟硬盘 v2 文件格式的磁盘映像文件,它包含一个完整的物理磁盘分区信息,但是存储在单个文件中。它支持固定大小、动态大小两种形式。

与doc与docx的关系类似,VHDx是VHD(Virtual Hard Disk)的后续格式,用于描述虚拟硬盘的文件及系统。

当你创建了一个VHDX后会多出一个对应文件:

打开这个文件就会自动挂载该硬盘,与ISO/DMG一样,挂载后的行为也和正常磁盘一致,可以弹出。

使用VHDX而非物理分区来创建开发用ReFS硬盘的好处是在设置应用中即可快速创建虚拟分区,无需重启电脑,也不会提前占用空间。

开始使用Dev Drive

在上面的设置中我们点击创建Dev Drive,根据提示即可创建我们的分区。

根据官网,微软建议将工作目录、存储库和包缓存放置在开发驱动器上,依赖ReFS,构建、依赖解析、Git等方面将获得一些性能提升。

前端Benchmark

这里用我个人博客项目来做一个简单的基准测试,由于Dev Drive之前吹嘘了Git性能,我就想从冷启动Clone开始测试性能:

由于测试内容跨分区,我Powershell学艺不精,靠GPT帮忙写了份测试脚本,将这份脚本分别放在了D:和E:的根目录下。

param(
    [string]$repoUrl
)

# 检查是否提供了仓库地址
if (-not $repoUrl) {
    Write-Host "请提供仓库地址作为参数。"
    Exit
}

# 获取当前脚本所在的路径作为仓库本地存储路径
$repoFolder = Join-Path $PSScriptRoot "test_repo"

# Clone Git 仓库
git clone $repoUrl $repoFolder

# 进入仓库目录
cd $repoFolder

# 安装依赖
pnpm install
# 构建项目
pnpm run build

随后运行测试脚本,结果如下图所示:

结果令人有些大跌眼镜,没想到NTFS(D:)居然比ReFS(E:)更快,但是考虑到Git Clone受网络波动影响,二者的最快性能没有明显差异(2%的平均速度差)。

我们随后又简单修改了脚本,专门测试pnpm install && pnpm build的性能,这个操作比Clone要更频繁一些。

在D盘(NTFS)的测试结果如下:

在E盘(ReFS)的测试结果如下:

可以看到在真正的开发命令下ReFS翻身做主人,平均5s(约18%)的领先幅度,不多但有点用,且不能排除虚拟磁盘对性能的影响。

因此,在日常开发环境下,Dev Drive即便在如此不平衡的试验下仍能取得一定的优势,且它可以轻松地将代码组织在一个磁盘下,很好地满足了我的整洁癖,个人评价值得一用。

标题: Windows Dev Drive快速上手体验

作者: ChlorineC

创建于: 2023-11-15 16:06:00

更新于: 2025-02-15 19:27:00

版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。

Share:

Related Posts

View All Posts »

Bun 1.0 初体验体验:这口包子香吗?

Bun 1.0是一个新的JavaScript运行时,作为Node.js的替代品,提供更快的包管理和开发解决方案。尽管目前在生产环境中尚不成熟,但它集成了多种工具,支持统一模块标准和Web API,具有显著的性能优势。Bun的包管理器速度比pnpm快4倍,支持原生JSX和TS,且具备构建工具的潜力。整体来看,Bun在运行时和工具链上均有加速效果,但仍需进一步发展以满足生产需求。

工欲善其事,必先利其器——打造自己趁手的终端体验

本文讨论了如何优化命令行终端体验,包括Shell Prompt的设计、Prompt工具的选择(如oh-my-posh和starship)、Nerd Fonts的使用,以及Powershell和Unix终端的配置。强调了不同版本Powershell的特点和配置文件的管理,介绍了oh-my-zsh的安装与主题选择,最后提到tmux作为终端复用工具的使用。

Python 编程环境重新构建

本文记录了重新构建Python编程环境的过程,主要包括从零开始构建面向PyQt5的环境和整理混乱的Python环境。使用miniconda管理多个Python环境,强调了conda的包管理和虚拟环境管理功能,介绍了mamba作为conda的替代品以提高依赖解析和下载速度,并详细说明了安装CUDA和PyTorch的步骤。

monorepo 前端项目实操

monorepo 前端项目实操

本文介绍了monorepo(单体仓库)的概念及其在前端项目中的应用,强调了使用yarn workspace和lerna进行项目管理的优势。monorepo允许多个项目在同一仓库中管理,便于依赖共享和版本发布。文章还探讨了monorepo的优缺点、适用场景以及最佳实践,包括commit规范、Git Hooks和自动化工具的使用,旨在帮助开发者更高效地管理和维护前端项目。