【问题标题】:Yarn 5x slower on windows纱线在 Windows 上慢 5 倍
【发布时间】:2016-11-12 18:27:36
【问题描述】:

当我将新包添加到已经运行 yarn install 的现有安装中时,添加新依赖项需要 5 分钟,这就像我刚刚在没有 node_modules 的情况下执行 yarn install 一样慢.

这正常吗?

我在 Windows 10 x64 上使用 Yarn 0.17.9。我确实让 Windows Defender 忽略了我的项目目录和 yarn 全局缓存目录。

编辑:这是我做的一些基准测试结果。基于它们,看起来 yarn add 实际上快了 30-40%,而真正的问题是 yarn 在 Windows 上慢了 500%

编辑 2:我已经确认没有为项目和纱线缓存目录启用索引。但现在我将 yarn 从 0.16.1 升级到 0.17.9,在 Windows 中速度提高了 35-50%!但它仍然比 Linux 慢 350-400%。我已经更新了基准。

Windows 性能问题似乎存在 Github 问题:https://github.com/yarnpkg/yarn/issues/990

基准测试:

--

Windows - 纱线安装(缓存):

Done in 172.29s.

Ubuntu - 纱线安装(缓存):

yarn install  48,75s user 11,32s system 117% cpu 51,161 total

--

Windows - 纱线添加 lodash:

Done in 143.11s.

Ubuntu - 纱线添加 lodash:

yarn add lodash  33,42s user 5,72s system 108% cpu 36,203 total

--

仅供参考,Ubuntu 基准测试是在 NTFS 驱动器上的同一文件夹中运行的。

用于基准测试的项目:https://github.com/amcsi/szeremi

【问题讨论】:

  • 升级到 v0.17.8 有帮助吗?
  • 我将很快尝试一下。我也没有注意到@Alexey 关于搜索索引的回答,所以我也要试试。
  • 0.17.8 对我的性能几乎没有影响。

标签: javascript windows yarnpkg


【解决方案1】:

在您的工作文件夹和纱线缓存文件夹上禁用 Windows 搜索索引以及完全或在文件夹上禁用 Windows Defender 应该会给您带来显着的性能提升。我在使用 SSD 驱动器的类似系统上减少了 30-50%,最初的时间和你的一样。

在 Yarn 缓存文件夹上禁用它也会给你一些加速。其位置由yarn cache dir 命令显示,默认%USERPROFILE%\Local Settings\Yarn\cache

要禁用对文件夹的搜索索引,请在资源管理器中找到它,右键单击,然后单击属性 - 常规 - 高级,取消选中“允许此文件夹中的文件除了文件属性之外还有内容索引”复选框,然后应用更改.

yarn github(2016 年 10 月)上已经存在这个性能问题,并且目前仍处于开放状态:https://github.com/yarnpkg/yarn/issues/990

【讨论】:

  • 我已经尝试过这些,但 Windows 仍然慢了 500%。通过从 yarn 0.16.1 升级到 0.17.9,Windows 现在只慢了 350-400%,但这仍然很慢。
  • 试过了,一点帮助都没有,我觉得yarn很慢,因为将文件从缓存复制到probject需要太长时间。在 Windows 上,npm 更快……尤其是在慢速互联网连接中,只有 npm 有效。
  • 虽然通常禁用防病毒软件会加快这一速度,但在企业环境中这不会发生,通常需要减少 IO。
  • 除了从 AV 和 Searching 中删除它之外,我发现我正在使用 Graalvm 的 Node 可执行文件。当我卸载 Graalvm 以使用标准 Node 安装时,Yarn 变得更快。
  • 知道如何在 CI 上解决这个问题,例如Github 操作工作流程?
【解决方案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 安装的 yarn(即,它是 linux 版本,而不是 yarn 的 windows 版本)。 V v 慢。

我尝试并将相同的 src 文件复制到非符号链接目录中。 IE。在 ~/tmp 下,这是一个 WSL 文件系统,而不是在 windows 文件系统下。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb        251G   11G  228G   5% /

现在的速度符合预期......即。正常(或相对于以前的行为,快得令人眼花缭乱)。

所以我现在在我的 react 项目中使用后一种设置。

【讨论】:

    【解决方案3】:

    我以前也有同样的问题。过去只需安装一个软件包就需要 30 多分钟。我在外部驱动器和网络驱动器上有我的项目,我尝试添加扫描病毒异常路径、打开防火墙等。没有提高速度。但是,只要我 git clone 到,就说 C:/New Folder/my repo。花了1.5秒。我希望这能解决一些开发者的问题。

    【讨论】:

      【解决方案4】:

      对我来说,从 WSL2 降级到 WSL1。

      在我的样板文件的 WSL2 纱线安装上花费了 890 秒

      在 WSL1 上 - 245 秒。

      在独立的 Ubuntu 上 - 130 秒。

      https://github.com/microsoft/WSL/issues/4197

      【讨论】:

        猜你喜欢
        • 2016-12-23
        • 2013-12-15
        • 2022-07-09
        • 1970-01-01
        • 2020-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-03
        相关资源
        最近更新 更多