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

2023-04-03 15:45:39 +08:00
 AOK123
同一个 Python 脚本,把约 100 张高清图片分成大约 30W 个小 patch 并保存,WSL 上运行速度比 Win 快至少 10 倍
在删除时候也是,WSL 上几秒钟的事(rm -rf),Windows 要几分钟(shift + delete)
这是什么原因?
7055 次点击
所在节点    Windows
52 条回复
0attocs
2023-04-03 18:57:23 +08:00
@NessajCN
pwsh 可以说是非常现代非常易用的 shell 了,且不说类似 fish/zsh 的 tab 补全和提示,pwsh 的函数 /cmdlet 是可以自动提示 /补全 /预测参数的,而且 pwsh 不区分大小写,常用命令都有 alias ,参数按前缀匹配,这一条命令纯手打也就是 rm -r -fo 。
0attocs
2023-04-03 19:04:31 +08:00
@NessajCN
要比较学习曲线的话,pwsh 首先文档齐全,其次 verb-noun 的全名绝对更好记,加上 tab 提示 /补全,函数名 alias ,参数名前缀匹配,-?帮助,现代化的语法和语言特性,绝对是更好学的那个。
newmlp
2023-04-03 19:09:34 +08:00
你在 Windows 下用命令删除文件和目录也可以秒删
newmlp
2023-04-03 20:36:43 +08:00
@mxT52CRuqR6o5 和文件系统没多大关系,系统 api 具体实现不同
newmlp
2023-04-03 20:38:39 +08:00
@Eiden 虚拟机的文件系统不还是存在 ntfs 文件系统上的么,没道理虚拟机的性能比物理机还好吧[二哈]
mxT52CRuqR6o5
2023-04-03 20:53:33 +08:00
@newmlp 前端开发表示并不能,同一个项目,在 windows host 上删除 node_module 还没有在 windows host 下虚拟的黑苹果 guest 系统里删的快
newmlp
2023-04-03 21:12:37 +08:00
@mxT52CRuqR6o5 为什么我这里的 Windows 用 rmdir 能秒删 node_module 呢[二哈]有没有可能是不是你不会删
BrettD
2023-04-03 21:27:41 +08:00
@newmlp VHDX 就一个文件,直接在 NTFS 里面操作就是操作很多个文件
Chipmunker
2023-04-03 21:39:39 +08:00
@0attocs pwsh 启动太慢了。
mxT52CRuqR6o5
2023-04-03 21:43:34 +08:00
@newmlp
有没有可能是你文件不够多,硬盘性能不够差呢
都是秒删说明你根本没撞到性能瓶颈,你的 case 压根就不能作为参考
justaname
2023-04-03 22:07:59 +08:00
@0attocs 至少对我来说我觉得 bash 以及 gnu 相关的那一套命令好学很多,pwsh 的面向对象设计经常用起来很难受……我需要查文档才知道具体应该怎么调用和控制对象,如果有外部命令需要交互的话那就更是乱成一团。相反 Linux shell 的设计逻辑就是字符串流,在大部分需要脚本解决的任务上我觉得方便很多
lusi1990
2023-04-03 22:42:51 +08:00
都用命令操作, window 也慢. 文件系统的原因
wisetc
2023-04-03 22:52:22 +08:00
问题存在,我也有类似的疑惑
Donahue
2023-04-03 23:46:27 +08:00
很久没用过 windows 了哈哈,这个系统用来编程感觉挺蛋疼的
est
2023-04-03 23:55:04 +08:00
因为 explorer.exe 是三哥写的 shell 。。你试试命令行 rd /s /q C: 看看快不快。
est
2023-04-03 23:55:42 +08:00
@est 提示:rd 命令有风险。请谨慎执行。
0attocs
2023-04-04 05:27:24 +08:00
@Chipmunker #22 这个不可避免吧,我配置好的 zsh 甚至 bash 启动和 pwsh 差不多慢,pwsh 无配置启动(-nop )也挺快的。
0attocs
2023-04-04 05:38:05 +08:00
@justaname #23
前面提到的也都是在 windows 下用 pwsh 。你如果说的是在 linux 下的话,在 gnu 的环境里当然是 bash 更搭,但学习记忆曲线还是不低的。想用 pwsh 在 linux 下做交互确实是要学习那一套 best practice ,我也尽量不碰,只是偶尔用 pwsh 做一些简单的 parallel processing 。
rm0gang0rf
2023-04-04 09:18:06 +08:00
用 c 试试?
yolee599
2023-04-04 09:20:52 +08:00
因为还要计算进度条用来显示
[有进度条反而速度更慢?有关进度条你不知道的秘密-哔哩哔哩] https://b23.tv/qPT3XzL

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

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

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

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

© 2021 V2EX