macOS Sequoia APFS环境下最快的文件夹重命名方式探究
更新
基于rename相关方案;
python3 \ -c "from os import rename; from sys import argv; rename(argv[1], argv[2])" \ $original $temp
在当前电脑环境下似乎是最快的方案。
这本不该是最优解,但实际情况就是如此。
我使用的是macOS Sequoia 15.2系统,存储在采用APFS的加密磁盘上。在虚拟机测试中,加密对操作耗时无明显影响,而APFS设计中的*全局锁(Global Lock)*才是导致操作变慢的原因。此外,openradar上也有相关bug报告。
因此,我们必须使用一些技巧来完成文件删除操作,以达到接近ext4或其他常规文件系统的速度。
以下是我的测试情况:
使用mv命令:
❯ time ( mv node_modules nm ) real 0m7.578s user 0m0.001s sys 0m0.003s
通过rm实现“移动”
即彻底删除文件。我的最终目标其实是删除文件
❯ time ( rm -rf node_modules ) real 0m17.763s user 0m0.132s sys 0m11.539s
通过rsync实现“移动”
❯ time ( rsync -av --delete $(mktemp -d)/ ./node_modules ) Transfer starting: 1 files sent 79 bytes received 26 bytes 70 bytes/sec total size is 0 speedup is 0.00 real 0m16.208s user 0m0.376s sys 0m11.505s
我很惊讶mv命令不是即时完成的——因为它应该只需要更新inode即可,不是吗?
除了上述openradar的问题,似乎也有其他用户注意到了这个问题:
- 苹果社区相关讨论
- openradar的同一份bug报告
不过可能Mac用户通常不会处理大型项目?或者他们只是因为“Mac好用”就忍受这个问题?不知道正常速度应该有多快?我不太清楚,这确实很奇怪。
@fravadona建议我禁用杀毒软件(AV)。
我已经禁用了。之前的情况要糟糕得多——耗时是现在的2-4倍。我之前用的是MalwareBytes,嗯……从名字就能看出来……所以如果可以选择杀毒软件的话,最好不要选这一款。
还有一些软件我需要测试:
- CyberHaven
- Kandji ESF
由于我没有测试硬件的所有权,无法禁用这些软件,但我可以启动macOS虚拟机进行相同测试:
以下是测试结果:
mv命令
time ( mv node_modules nm.bak ) real 0m0.011s
rm -rf命令
time ( rm -rf node_modules ) real 0m12.812s
所以……这真的很离谱。
内容的提问来源于stack exchange,提问作者NullVoxPopuli
相关产品推荐
相关产品推荐

