Windows 操作大量文件速度比 Linux 慢很多

2023-04-03 15:45:39 +08:00
 AOK123
同一个 Python 脚本,把约 100 张高清图片分成大约 30W 个小 patch 并保存,WSL 上运行速度比 Win 快至少 10 倍
在删除时候也是,WSL 上几秒钟的事(rm -rf),Windows 要几分钟(shift + delete)
这是什么原因?
7021 次点击
所在节点    Windows
52 条回复
mxT52CRuqR6o5
2023-04-03 15:47:23 +08:00
ntfs 的问题
AOK123
2023-04-03 15:51:53 +08:00
@mxT52CRuqR6o5 感谢,但我不是很懂文件系统,有个疑问:WSL 也是装在同一个硬盘上的,应该也是 ntfs 吧?
codehz
2023-04-03 15:57:35 +08:00
杀毒软件扫描文件的问题,每次创建 /打开 /写入文件都要过一个文件系统过滤器然后才会返回程序
Eiden
2023-04-03 16:03:07 +08:00
如果你说的 wsl 是指 wsl2 的话, wsl2 是虚拟机, 文件系统不是 ntfs
busier
2023-04-03 16:03:41 +08:00
杀毒软件的锅,禁用杀毒软件(包括自带的)就会快很多!另外 Windows 删除目录也会先扫描目录结构,然后在删除!
如果删除大量文件,还不如 cmd 里面 rd /s 来的快!
coderluan
2023-04-03 16:06:47 +08:00
python 没代码不确定。但是删除那个,你不能拿 cli 和 gui 比啊,(rm -rf) 得和(del /s)比才公平,
marcong95
2023-04-03 16:08:09 +08:00
你要对比 rm -rf 的话,为何不对比 Windows 下对应的指令呢,例如 powershell 下 Remove-Item -Recurse -Force <路径>

迫于 npm/node_modules 经常需要删除超大量文件,GUI 下的删除即便是 Shift + Delete 可能也有大量需要预处理的情况,主观感觉用指令会快一点
FozillaMox
2023-04-03 16:10:17 +08:00
同感。我分别用 Windows 和 macOS 对同一台文件系统为 FAT32 的设备进行文件操作,Windows 下就连简单的复制粘贴都比 macOS 慢很多。
encro
2023-04-03 16:10:26 +08:00
用界面要统计进度和空间,如果很多小文件,那么会慢。

而且杀毒软件确实非常大影响。
0attocs
2023-04-03 16:23:22 +08:00
还有 explorer.exe 本身的效率问题,加载的插件和层层逻辑太多了。
cwcc
2023-04-03 16:29:29 +08:00
WSL2 的话,Linux 的文件会保存到 VHDX 虚拟硬盘中。
如果将文件放入虚拟硬盘中且同时用 WSL2 操作文件,效率会高很多。
如果将文件放在 Windows 的硬盘分区中,操作是走网络挂载会影响性能。
如果是 Windows 操作 WSL2 内的文件,也是走的网络挂载,性能可能被 Windows 的杀毒软件和多系统之间的 IO 影响。
如果是 Windows 操作 Windows 的文件,有 GUI 也会影响性能,有时候 Explorer 卡住了也会导致无法正常满速传输。
mmdsun
2023-04-03 16:30:33 +08:00
Windows 复制、拷贝、粘贴批量文件都会很慢。
之前问微软的人,说是加这个暂停功能的原因。
你甚至可以暂停后,把 U 盘、磁盘拔出来,再插回去进去点继续,传输进度还不会丢失。





用 rebocopy 命令会快很多。
NessajCN
2023-04-03 16:35:26 +08:00
@marcong95 很认真地说,我认为对比指令执行速度时必须包括敲这些指令的时间。更极端一点,还应该比较记住并能熟练使用这些指令的时间......
em70
2023-04-03 16:39:04 +08:00
命令行跟 GUI 比速度? linux 用 FTP 客户端删除,一样慢死,这是 GUI 需要处理过多消息的缘故,你用 cmd 跟 shell 速度一样的
aptupdate
2023-04-03 16:43:16 +08:00
@mmdsun 长知识了……
一直认为那个暂停功能没什么鸟用,谁会复制到一半暂停啊。。。
woyaoying
2023-04-03 16:45:08 +08:00
禁止 windows 杀毒实时扫描
lisxour
2023-04-03 16:52:43 +08:00
@aptupdate 然而暂停功能是真的难用,你拷大文件或者超多文件时,你一点暂停,运气好卡几分钟,运气不好,无限期卡住,重新开始传输也是
Kiriya
2023-04-03 16:56:44 +08:00
windows 在操作大量文件时会先统计文件数量及文件大小,这会浪费大量时间,所以 Windows 移动复制删除大量文件推荐使用 fastcopy 替代资源管理器,可以省略统计文件大小所浪费的时间
kkocdko
2023-04-03 17:01:14 +08:00
虽然很多人确实不知道这件事,但是你的问题无论是用 New Bing 还是传统的搜索引擎,都能得到正确答案。
PrinceofInj
2023-04-03 18:46:09 +08:00
@mmdsun 这个暂停挺好用的。有时候从 U 盘上拷东西开始拷贝后才发现是 2.0 的口,暂停一下,插到 3.0 得上,然后继续,速度刷的一下子就上去了,超好用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/929441

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX