gpt4 book ai didi

ubuntu - 与原生 Windows NPM/Yarn 处理相比,为什么 WSL 非常慢?

转载 作者:行者123 更新时间:2023-12-04 18:24:26 28 4
gpt4 key购买 nike

我最近经常使用 WSL,因为我需要一些 native UNIX 工具(而且模拟器还不够好)。我注意到使用 NPM/Yarn 时的速度差异令人难以置信。
我进行了一个简单的测试,证实了我的感受。测试正在运行npx create-react-app my-test-app WSL 结果为 Done in 287.56s.而 GitBash 以 Done in 10.46s. 结束.
这不是全部情况,因为在这两种情况下感知时间都更长,但即使基于此 - 某处也存在大问题。我只是不知道在哪里。我正在进行的项目使用了数十个库,即使更改其中一个也需要几分钟而不是几秒钟。
这是我可以解决的问题吗?如果是这样 - 在哪里寻找线索?
附加信息:

  • 我的处理器:处理器 AMD Ryzen 7 5800H,带 Radeon Graphics,3201 Mhz,8 核,16 个逻辑处理器
  • 我正在运行 Windows 11,其中包含系统和 WSL 的所有最新更新。选择的系统是 Ubuntu 20.04
  • 我见过一些类似的问题,例如 'npm install' extremely slow on Windows ,但它们根本不涉及 WSL(而且我的纯 Windows NPM 运行速度很快)。
  • 问题不仅限于 NPM,也适用于 Yarn
  • 我遇到的另一个问题是文件监视没有发生(我需要在每次更改时重新启动服务器)。在某些应用程序中我没有收到任何错误,有时我会收到以下信息:
    Watchpack Error (initial scan): Error: EACCES: permission denied, lstat '/mnt/c/DumpStack.log.tmp'
    Watchpack Error (initial scan): Error: EACCES: permission denied, lstat '/mnt/c/hiberfil.sys'
    Watchpack Error (initial scan): Error: EACCES: permission denied, lstat '/mnt/c/pagefile.sys'
    Watchpack Error (initial scan): Error: EACCES: permission denied, lstat '/mnt/c/swapfile.sys'
  • npm start在一个空的(新初始化的)create-react-app需要很长时间才能在 WSL 中的浏览器中呈现某些内容,并且从 GitBash 执行时 - 我可以在 2-4 秒内看到内容
  • 这可能是纯粹的 WSL 问题,但在使用 NPM/Yarn 时伤害最大
  • 最佳答案

    由于您提到在 Git Bash 中执行相同的文件(具有适当的性能),所以我将在这里做一个假设。如果我错了,请纠正我,我将删除答案并寻找另一种可能性。
    如果您的文件存储在 /mnt/c 上,这将被解释(和预期)。 (又名 C:/C 在 Git Bash 下)或任何其他 Windows 驱动器,因为它们可能需要被 Git Bash 访问。
    WSL2 使用 9P 协议(protocol)访问 Windows 驱动器,目前已知它与以下相比非常慢:

  • native NTFS(显然)
  • WSL2 使用的虚拟磁盘上的 ext4 文件系统
  • 甚至 WSL1 与 Windows 驱动器的性能

  • 我看过一个 git clone大型 repo(WSL2 Linux 内核 Github)在 Windows 驱动器上的 WSL2 上需要 8 分钟,但在根文件系统上只需几秒钟。
    两种可能:
  • 如果可能(并且适用于大多数 Node 项目),请使用 wsl --set-version <distroname> 1 将您的 WSL 转换为版本 1。 .我总是建议使用 wsl --export 进行备份第一的。
    而且由于您无论如何都要进行备份,所以您也可以通过 wsl --import 创建实例的副本。将您的备份设置为 --version 1 (作为最后一个论点)。 WSL1 和 WSL2 都有其用途,您可能会发现同时保留它们会有所帮助。
    this answer有关确切语法的更多详细信息..
  • 或者只是将项目移动到 WSL 根目录下的某个位置,例如 /home/username/src/ .
  • 关于ubuntu - 与原生 Windows NPM/Yarn 处理相比,为什么 WSL 非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68972448/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com