1
mxT52CRuqR6o5 2023-04-03 15:47:23 +08:00
ntfs 的问题
|
2
AOK123 OP @mxT52CRuqR6o5 感谢,但我不是很懂文件系统,有个疑问:WSL 也是装在同一个硬盘上的,应该也是 ntfs 吧?
|
3
codehz 2023-04-03 15:57:35 +08:00 via iPhone
杀毒软件扫描文件的问题,每次创建 /打开 /写入文件都要过一个文件系统过滤器然后才会返回程序
|
4
Eiden 2023-04-03 16:03:07 +08:00
如果你说的 wsl 是指 wsl2 的话, wsl2 是虚拟机, 文件系统不是 ntfs
|
5
busier 2023-04-03 16:03:41 +08:00
杀毒软件的锅,禁用杀毒软件(包括自带的)就会快很多!另外 Windows 删除目录也会先扫描目录结构,然后在删除!
如果删除大量文件,还不如 cmd 里面 rd /s 来的快! |
6
coderluan 2023-04-03 16:06:47 +08:00
python 没代码不确定。但是删除那个,你不能拿 cli 和 gui 比啊,(rm -rf) 得和(del /s)比才公平,
|
7
marcong95 2023-04-03 16:08:09 +08:00
你要对比 rm -rf 的话,为何不对比 Windows 下对应的指令呢,例如 powershell 下 Remove-Item -Recurse -Force <路径>
迫于 npm/node_modules 经常需要删除超大量文件,GUI 下的删除即便是 Shift + Delete 可能也有大量需要预处理的情况,主观感觉用指令会快一点 |
8
FozillaMox 2023-04-03 16:10:17 +08:00 via iPhone
同感。我分别用 Windows 和 macOS 对同一台文件系统为 FAT32 的设备进行文件操作,Windows 下就连简单的复制粘贴都比 macOS 慢很多。
|
9
encro 2023-04-03 16:10:26 +08:00
用界面要统计进度和空间,如果很多小文件,那么会慢。
而且杀毒软件确实非常大影响。 |
10
0attocs 2023-04-03 16:23:22 +08:00 via iPhone
还有 explorer.exe 本身的效率问题,加载的插件和层层逻辑太多了。
|
11
cwcc 2023-04-03 16:29:29 +08:00
WSL2 的话,Linux 的文件会保存到 VHDX 虚拟硬盘中。
如果将文件放入虚拟硬盘中且同时用 WSL2 操作文件,效率会高很多。 如果将文件放在 Windows 的硬盘分区中,操作是走网络挂载会影响性能。 如果是 Windows 操作 WSL2 内的文件,也是走的网络挂载,性能可能被 Windows 的杀毒软件和多系统之间的 IO 影响。 如果是 Windows 操作 Windows 的文件,有 GUI 也会影响性能,有时候 Explorer 卡住了也会导致无法正常满速传输。 |
12
mmdsun 2023-04-03 16:30:33 +08:00 13
|
13
NessajCN 2023-04-03 16:35:26 +08:00
@marcong95 很认真地说,我认为对比指令执行速度时必须包括敲这些指令的时间。更极端一点,还应该比较记住并能熟练使用这些指令的时间......
|
14
em70 2023-04-03 16:39:04 +08:00
命令行跟 GUI 比速度? linux 用 FTP 客户端删除,一样慢死,这是 GUI 需要处理过多消息的缘故,你用 cmd 跟 shell 速度一样的
|
16
woyaoying 2023-04-03 16:45:08 +08:00 1
禁止 windows 杀毒实时扫描
|
17
lisxour 2023-04-03 16:52:43 +08:00 1
@aptupdate 然而暂停功能是真的难用,你拷大文件或者超多文件时,你一点暂停,运气好卡几分钟,运气不好,无限期卡住,重新开始传输也是
|
18
Kiriya 2023-04-03 16:56:44 +08:00
windows 在操作大量文件时会先统计文件数量及文件大小,这会浪费大量时间,所以 Windows 移动复制删除大量文件推荐使用 fastcopy 替代资源管理器,可以省略统计文件大小所浪费的时间
|
19
kkocdko 2023-04-03 17:01:14 +08:00
虽然很多人确实不知道这件事,但是你的问题无论是用 New Bing 还是传统的搜索引擎,都能得到正确答案。
|
20
PrinceofInj 2023-04-03 18:46:09 +08:00
@mmdsun 这个暂停挺好用的。有时候从 U 盘上拷东西开始拷贝后才发现是 2.0 的口,暂停一下,插到 3.0 得上,然后继续,速度刷的一下子就上去了,超好用。
|
21
0attocs 2023-04-03 18:57:23 +08:00 via iPhone
@NessajCN
pwsh 可以说是非常现代非常易用的 shell 了,且不说类似 fish/zsh 的 tab 补全和提示,pwsh 的函数 /cmdlet 是可以自动提示 /补全 /预测参数的,而且 pwsh 不区分大小写,常用命令都有 alias ,参数按前缀匹配,这一条命令纯手打也就是 rm -r -fo 。 |
22
0attocs 2023-04-03 19:04:31 +08:00 via iPhone
@NessajCN
要比较学习曲线的话,pwsh 首先文档齐全,其次 verb-noun 的全名绝对更好记,加上 tab 提示 /补全,函数名 alias ,参数名前缀匹配,-?帮助,现代化的语法和语言特性,绝对是更好学的那个。 |
23
newmlp 2023-04-03 19:09:34 +08:00
你在 Windows 下用命令删除文件和目录也可以秒删
|
24
newmlp 2023-04-03 20:36:43 +08:00
@mxT52CRuqR6o5 和文件系统没多大关系,系统 api 具体实现不同
|
26
mxT52CRuqR6o5 2023-04-03 20:53:33 +08:00
@newmlp 前端开发表示并不能,同一个项目,在 windows host 上删除 node_module 还没有在 windows host 下虚拟的黑苹果 guest 系统里删的快
|
27
newmlp 2023-04-03 21:12:37 +08:00
@mxT52CRuqR6o5 为什么我这里的 Windows 用 rmdir 能秒删 node_module 呢[二哈]有没有可能是不是你不会删
|
29
Chipmunker 2023-04-03 21:39:39 +08:00
@0attocs pwsh 启动太慢了。
|
30
mxT52CRuqR6o5 2023-04-03 21:43:34 +08:00 via Android
|
31
justaname 2023-04-03 22:07:59 +08:00 via iPhone
@0attocs 至少对我来说我觉得 bash 以及 gnu 相关的那一套命令好学很多,pwsh 的面向对象设计经常用起来很难受……我需要查文档才知道具体应该怎么调用和控制对象,如果有外部命令需要交互的话那就更是乱成一团。相反 Linux shell 的设计逻辑就是字符串流,在大部分需要脚本解决的任务上我觉得方便很多
|
32
lusi1990 2023-04-03 22:42:51 +08:00
都用命令操作, window 也慢. 文件系统的原因
|
33
wisetc 2023-04-03 22:52:22 +08:00 via iPhone
问题存在,我也有类似的疑惑
|
34
Donahue 2023-04-03 23:46:27 +08:00
很久没用过 windows 了哈哈,这个系统用来编程感觉挺蛋疼的
|
35
est 2023-04-03 23:55:04 +08:00
因为 explorer.exe 是三哥写的 shell 。。你试试命令行 rd /s /q C: 看看快不快。
|
37
0attocs 2023-04-04 05:27:24 +08:00
@Chipmunker #22 这个不可避免吧,我配置好的 zsh 甚至 bash 启动和 pwsh 差不多慢,pwsh 无配置启动(-nop )也挺快的。
|
38
0attocs 2023-04-04 05:38:05 +08:00
@justaname #23
前面提到的也都是在 windows 下用 pwsh 。你如果说的是在 linux 下的话,在 gnu 的环境里当然是 bash 更搭,但学习记忆曲线还是不低的。想用 pwsh 在 linux 下做交互确实是要学习那一套 best practice ,我也尽量不碰,只是偶尔用 pwsh 做一些简单的 parallel processing 。 |
39
rm0gang0rf 2023-04-04 09:18:06 +08:00
用 c 试试?
|
40
yolee599 2023-04-04 09:20:52 +08:00 via Android
因为还要计算进度条用来显示
[有进度条反而速度更慢?有关进度条你不知道的秘密-哔哩哔哩] https://b23.tv/qPT3XzL |
41
Huelse 2023-04-04 09:21:57 +08:00
NTFS 文件系统有啥问题?这个文件系统微软用了多少年了,期间 linux 都换了不知道多少个文件系统
|
42
newmlp 2023-04-04 09:33:41 +08:00
@mxT52CRuqR6o5 我可用是机械硬盘。。。。
|
44
kindjeff 2023-04-04 09:44:24 +08:00
文件放在哪,wsl2 和 win 宿主机互相之间访问都要走网络奥
|
45
mscsky 2023-04-04 11:24:54 +08:00
有没有可能 Windows 也能用命令行删除
|
46
jacy 2023-04-04 11:44:48 +08:00
把 windows defender 关掉
|
47
BrettD 2023-04-04 12:30:25 +08:00 via iPhone
@newmlp 那为什么在 WSL 里面 git checkout 一个大仓库,比如 LLVM ,比在 Windows 里面直接在 NTFS 上 checkout ,只需要接近一半时间?
|
48
newmlp 2023-04-04 12:41:56 +08:00
@BrettD 原因有很多,我甚至可以认为网络环境不一样,但是你非要说和文件系统有关系,那似乎我也无法反驳,因为你这个简单的对比中不可控的变量太多了
|
49
BrettD 2023-04-04 12:44:29 +08:00 via iPhone
@newmlp 对比方式是先把一样的仓库 clone 下来,然后比较的是从一个 tag checkout 到另一个 tag 的时间,整个过程是全本地的文件操作。我的印象就是 NTFS 操作大量小文件的效率非常低。VHDX 就是一个文件,所以没有这些在 NTFS 操作大量小文件的瓶颈。
|
50
Yeen 2023-04-04 15:12:50 +08:00
建议写 C++代码,直接调用系统 api 操作。
|