当我将新软件包添加到已经运行yarn install
的现有安装时,添加新依赖项需要5分钟,这与我刚刚yarn install
没有{的情况一样慢{1}}还有。
这是正常的吗?
我在Windows 10 x64上使用Yarn 0.17.9。我确实让Windows Defender忽略了我的项目目录和yarn全局缓存目录。
编辑:这是我做的一些基准测试结果。基于它们,似乎纱线添加速度实际上要快30-40%,真正的问题只是纱线在Windows上慢了500%编辑2:我已经确认没有为项目和纱线缓存目录启用索引。但现在我已将纱线从0.16.1升级到0.17.9,并且Windows的速度提高了35-50%!但它仍然比Linux慢350-400%。我更新了基准测试。
Windows性能问题似乎存在Github问题:https://github.com/yarnpkg/yarn/issues/990
基准:
-
Windows - 纱线安装(缓存):
node_modules
Ubuntu - yarn install(缓存):
Done in 172.29s.
-
Windows - 纱线添加lodash:
yarn install 48,75s user 11,32s system 117% cpu 51,161 total
Ubuntu - 纱线添加lodash:
Done in 143.11s.
-
仅供参考,Ubuntu基准测试在NTFS驱动器上的同一文件夹上运行。
用于基准测试的项目:https://github.com/amcsi/szeremi
答案 0 :(得分:15)
在工作文件夹和纱线缓存文件夹上禁用Windows搜索索引以及完全禁用Windows防御程序或在文件夹上禁用Windows应该会显着提升性能。我对使用SSD驱动器的类似系统的性能下降了30-50%,原来时间与你的一样。
在Yarn缓存文件夹中禁用它也可以为您提供一些加速。默认情况下,yarn cache dir
命令%USERPROFILE%\Local Settings\Yarn\cache
显示其位置。
要在文件夹上禁用搜索索引,请在资源管理器中找到它,右键单击,然后选择属性 - 常规 - 高级,取消选中"允许此文件夹中的文件除了文件属性之外还有内容编入索引"复选框,然后应用更改。
这个性能问题已存在于github纱线上(10月' 2016),目前仍然开放:https://github.com/yarnpkg/yarn/issues/990
答案 1 :(得分:2)
我的经历...
执行 yarn start
非常缓慢。
我的设置。 我在 Windows 10 家庭版上运行 WSL2 Ubuntu 20。 我的 WSL src 目录有一个指向 windows c:\Users\chai 的符号链接(与 WSL 拥有的任何文件系统相反,即本机 WSL 文件系统)。 即。
Filesystem Size Used Avail Use% Mounted on
C:\ 476G 395G 82G 83% /mnt/c
我正在运行通过 WSL2 Ubuntu 安装的纱线(即它是 linux 版本,而不是纱线的 windows 版本)。 V v 慢。
我尝试将相同的 src 文件复制到非符号链接目录中。 IE。在 ~/tmp 下,这是一个 WSL 文件系统,而不是在 windows 文件系统下。
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 251G 11G 228G 5% /
现在的速度符合预期......即。正常(或相对于之前的行为,快得令人眼花缭乱)。
所以我现在在我的 React 项目中使用后一种设置。
答案 2 :(得分:0)
我曾经有过同样的问题。过去只花30分钟即可安装一个软件包。我将项目放在外部驱动器和网络驱动器上,尝试添加扫描病毒异常路径,打开防火墙等。没有一个可以提高速度。但是,一旦我git clone到,请说C:/ New Folder / my repo。花了1.5秒。我希望这可以为某些开发人员解决此问题。
答案 3 :(得分:0)
对我来说,从 WSL2 降级到 WSL1。
在 WSL2 上安装我的样板花了 890 秒
在 WSL1 上 - 245 秒。
在独立的 Ubuntu 上 - 130 秒。
答案 4 :(得分:-1)
是的,这是正常的,但原因是你的网络设置,而不是你的操作系统。
打开Wireshark,你会发现纱线比npm提出的要求更少