我想知道在处理大量小文件时,是否可以采取一些措施来提高 NTFS 的性能,例如在使用 Git、Subversion、NPM 或其他创建大量小文件的技术时。我读过SU 上的其他帖子解释了为什么在 NTFS 上处理小文件如此缓慢,但我想知道我该如何改进它,如果有的话。
例如,node_modules
在大多数 Linux 文件系统上,删除由开发工具 NPM 创建的特定大型目录最多需要一瞬间到几秒钟的时间,但使用在 Windows Sybsystem for Linux (WSL) 中运行的 bash 则需要 35 秒。我知道问题不在于 WSL 本身,因为我记得使用 Explorer 删除文件夹时问题更加严重。我记得bash
几年前我使用 Cygwin 或 MSYS2 来节省时间,也许是因为 GUI 操作需要做大量的簿记工作,因为需要支持“移至文件篮”功能(本质上是遍历整个文件系统)。
我从其他情况得知,禁用 Windows Defender(反恶意软件保护)在某些目录上的工作可以大大提高性能,因为它似乎可以拦截文件系统调用。Chocolatey
例如,上次使用包管理器时,它就受到了严重影响,解压文件需要 15 分钟,而禁用 Defender 后只需几秒钟。其他人报告了 5 倍的改善在将文件排除在扫描范围之外时,WSL 上的文件创建时间(虽然可能不太明智)。我自己在禁用 Defender 后进行的实验表明,删除文件的速度略有提高 (10%),但创建文件的速度提高了 6 倍 (40 秒 vs 4 分 14 秒)!
因此我们假设 Windows Defender 有 WSL 文件夹已添加到排除列表中列出可能的改进。