最近我经常使用WSL,因为我需要一些本地UNIX工具(而且模拟器不够好)。我注意到,与NPM/纱线工作时的速度差异是难以置信的。
我做了一个简单的测试来证实我的感受。测试正在运行npx create-react-app my-test-app,WSL的结果是Done in 287.56s.,而GitBash完成了Done in 10.46s.。
这并不是整个情况,因为在这两种情况下,感知的时间都要更长,但即使基于这一点,在某个地方也有一个大问题。我只是不知道在哪。我正在做的这个项目使用了几十个库,其中一个库的更改只需要几分钟而不是几秒钟。
这是我能治好的吗?如果是的话-去哪里找线索?
更多信息:
npm start中,create-react-app需要很长时间才能在WSL浏览器中呈现某些内容,当从GitBash执行时,我可以在2-4秒内看到内容。发布于 2021-08-29 15:40:17
既然您提到在Git Bash中执行相同的文件(具有适当的性能),我将在这里做一个假设。如果我错了,请纠正我,我会删除答案,寻找另一种可能性。
如果您的文件存储在/mnt/c (a.k.a )上,这将得到解释(并且是预期的)。C:,或Git下的/C )或任何其他Windows驱动器,因为它们可能需要被Git访问。
WSL2使用9P协议访问Windows驱动器,目前所知的访问速度非常慢:
我看到了一个大型回购系统()的git clone,在WSL2驱动器上WSL2只需8分钟,而根文件系统只需几秒钟。
有两种可能性:
wsl --set-version <distroname> 1将您的WSL转换为版本1。我总是建议先使用wsl --export进行备份。
而且,由于您正在进行备份,所以您最好通过wsl --import将备份作为--version 1 (作为最后一个参数)来创建实例的副本。WSL1和WSL2都有它们的用途,您可能会发现将两者保持在一起是有帮助的。
有关确切语法的更多细节,请参见这个答案。/home/username/src/。发布于 2021-11-15 01:59:05
建立在@notthedr01ds的回应之上。
如果你看一下微软的WSL 1和WSL 2的比较,“跨操作系统的性能”在WSL2中会明显更差。

我的案子落入了使用WSL 1而不是WSL 2的例外情况
这意味着我需要切换到版本1。
wsl --set-version Ubuntu 1
Conversion in progress, this may take a few minutes...
Conversion complete.试验前
>time git status
...
real 0m6.436s
user 0m0.055s
sys 0m36.380s后测
> time git status
...
real 0m0.126s
user 0m0.016s
sys 0m0.641shttps://stackoverflow.com/questions/68972448
复制相似问题