更新
基于以下答案
rename
;
python3 \
-c "from os import rename; from sys import argv; rename(argv[1], argv[2])" \
$original $temp
对于这台电脑的情况,似乎是最快的。
它
不应该
但我们到了。
我使用的是macOS Sequoia 15.2,在使用APFS的加密驱动器上。
在虚拟机测试中,加密对这些时间没有可测量的影响,但通过
全局锁定
:
https://gregoryszorc.com/blog/2018/10/29/global-kernel-locks-in-apfs/
是什么减缓了事情的发展。
openradar也有这个bug报告:
https://openradar.me/45648013
因此,我们必须使用
把戏
删除一些东西,试图变得和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更新,是吗?
除了开放雷达问题之外,
似乎其他人已经注意到了这个问题:
但也许,mac用户通常不会在大型项目中工作?也许他们只是因为“mac很好”才忍受的?不知道事情有多快?idk。这很奇怪。
@fravadona建议我禁用我的AV。
一、
有
事实上。过去情况更糟,糟糕2到4倍。使用的AV是MalwareBytes,并且。。。嗯,恶意软件的名字是对的。。。所以…如果你可以选择AV。。。可能不想要那个。
这里还有更多软件供我测试:
虽然我无法禁用这些东西(我不拥有正在测试的硬件),但我可以启动macOS VM并运行相同的测试:
结果如下:
mv
time ( mv node_modules nm.bak )
real 0m0.011s
rm -rf
time ( rm -rf node_modules )
real 0m12.812s
所以…那真是太疯狂了。