WSL 发展缓慢

Man*_*oid 4 visual-studio-code windows-subsystem-for-linux

我正在关注如何在 WSL 环境中运行 VSC。

我可以在 WSL 环境中的 VSC 中打开我的项目。

但我发现几乎每个命令都非常慢。例如,当我运行“git status”时,它每次都会建立索引,这会大大减慢速度。

我是否需要忍受它或者我做错了什么?如果是,我不确定使用 WSL 进行开发是否是一个可行的选择。

Not*_*1ds 13

WSL2 中性能问题的最常见原因是尝试访问Windows驱动器上的文件(例如通过/mnt/c/...)。如果您正在处理的项目位于 Windows 驱动器上,则很可能可以解释根本问题。请参阅我的回答:与本机 Windows NPM/Yarn 处理相比,为什么 WSL 极其缓慢?了解详情。

作为该博文中的一个示例,通过 WSL2 运行时,Windows 驱动器上的 Git 操作可能比在 Ext4 文件系统上运行时花费的时间长近两个数量级。在 WSL2 下的 Ext4 文件系统上运行对性能的“正常”影响取决于所访问的文件类型,但通常在 10-50% 之间。对于日常开发使用,您确实不应该“注意到”它。“极其缓慢”听起来像是“Windows 驱动器”问题。

但是,我并不完全相信这就是您的情况的问题。您提到您可以通过 VSCode(大概是通过WSL)打开您的项目,并且当您/如果您在 Windows 驱动器上打开项目时,它应该显示有关性能的警告。当然,您可能错过了它,或者可能习惯性地点击关闭(我们都这样做!)。

当涉及到 WSL 时,VSCode 可以在两种不同的“模式”下运行:

  • “Windows”(正常)模式
  • “WSL”(扩展/远程)模式

假设您安装了 WSL 扩展,VSCode 将检测您何时在 WSL 下启动它并自动切换到远程模式。当重新打开原来是远程的项目时,它也会自动切换到远程。

一般规则是:

  • 使用 Windows 工具时以正常/Windows 模式打开项目。将这些项目存储在 Windows 驱动器上。
  • 当您使用 Linux 工具(进程、文件系统等)时,以 WSL/远程模式打开项目。将这些项目存储在 WSL2 提供的虚拟 SDD Ext4 文件系统中(例如,在您的 Linux$HOME目录下)。

您可以通过查看 VSCode 窗口的左下角来判断您在 VSCode 中处于哪种模式。最左侧有一个工具栏选项,看起来像><,略有偏移。如果您处于“正常”模式,则它只是><. 如果您在 WSL 下运行,您还会在那里看到 WLS 发行版的名称。悬停将提供更多详细信息。