为什么WSL 2比WSL快13倍:内幕预览印象

Microsoft正在准备发布Windows 2020年5月更新(20H1)。此更新将包含一些不错的用户界面改进,但对开发人员和其他同工而言更重要的是WSL 2(Linux的Windows子系统)将出现在新版本的Windows中。对于那些想切换到Windows但又不敢尝试的人来说,这是相关的信息。

Dave Rupert在其13英寸Surface笔记本电脑上安装了WSL 2,第一个结果
令人惊讶:




WSL的第二个版本比第一个版本快13倍!并非每天都免费获得13倍的生产力提升。当我第一次看到这些结果时,我感到一阵发冷,并发出了一种刻薄的男性眼泪。为什么?好吧,基本上,我为使用WSL第一版工作5年所累积的时间浪费感到遗憾。

这些不只是数字。在WSL 2中,安装npm,构建,打包,查看文件,重新启动热模块,启动服务器-作为Web开发人员,我日常使用的几乎所有东西都变得越来越快。感觉就像是再次坐在Mac上(或者可能更好,因为在过去的几年中,Apple大大限制了其处理器,以延长电池寿命)。

为什么这么敏捷?


他们如何实现13倍的生产率增长?早些时候,当我考虑切换到Mac时,我也提出了一些选择,但是,纯粹是在假设的水平上。事实是,由于WSL的第一个版本的架构,写入磁盘和Linux系统调用非常昂贵(就时间开销而言)。现在猜想现代Web开发高度依赖什么?是。每次保存文件时,将一堆依赖关系和代码片段放在一起时,实际上您要对大量文件进行大量磁盘写入和系统调用。

一旦您通过痛苦的经历了解了这一点,那之后就很难忘记一切。当您想象所有事情如何缓慢而可悲时,您就会逐渐变得沮丧。而且您了解到您的世界将不再相同,并且您喜欢的工具似乎不再有用和有效。

幸运的是,WSL团队冒险并彻底重写了子系统。在WSL 2中,解决了以下问题:开发人员将自己的Linux虚拟机集成到Windows中,并将文件操作分配给VHD(虚拟硬件磁盘)网络驱动器。权衡是,第一次启动时,您必须花费时间来启动虚拟机。此时间以毫秒为单位计算,对我个人而言几乎没有引起注意。例如,我很高兴地等待,因为我知道这是干什么的。

这些文件现在将存放在哪里?


要充分利用WSL 2,您需要将项目文件从/ mnt / c / Users / <用户名> /移动新VHD上的新〜/ Linux主目录中您可以转到\\\\ wsl $ \\ <分发名>> \\ <用户名> \\ home从Bash shell 输入explorer.exe命令来查看网络上该磁盘的内容

这是一个真正的Linux文件系统,其作用和行为符合您的预期。我创建了〜/ projects文件夹,其中存放了所有项目存储库,然后使用code命令在Visual Studio Code中打开了项目。

VS Code呢?


在VS Code上 安装WSL 扩展程序以进行远程开发(VS Code Remote-WSL)是确保开发人员感到舒适的最后一步。该扩展允许VS Code通过直接与Linux虚拟机进行交互来执行其所有操作(git命令,控制台,安装扩展等)。这使得整个过程非常自治。

刚开始,我对安装此扩展程序有点不高兴,因为我需要重新安装之前安装和配置的内容。但是现在我很感激,因为出现了一个特殊的可视化层,可以显示我在哪个环境中工作以及文件在哪里居住。这使Windows上的Web开发过程更加透明,并大大简化了VS Code中用于版本控制的用户界面的使用。

眼泪的幸福和对美好未来的希望


考虑下一个版本的Windows 2020年5月更新版以及仅依靠我功能强大的游戏机而优化的Linux子系统时,我感到非常高兴。我可能还不知道一些其他问题,但是在Insider Preview之后,我得出结论,WSL团队解决了大多数问题。

另外,别忘了Windows Terminal也不错!他们似乎听到了我关于缺少选项卡,JSON设置以及在Windows上“感觉很酷”的抱怨。听起来仍然很奇怪,但是Windows Terminal可能是Windows的最佳终端。

在Windows中工作了5年后,我经历了很多事情:无法安装Rails,与Cygwin人造外壳的斗争。当Microsoft宣布WSL的第一个版本时,我在同一Build 2016大会上坐在前排。然后,我希望Windows上的Web开发将最终达到一个新的水平。毫无疑问,WSL 2是自那时以来我看到的最大改进,而且看起来我们正处在一个新时代的边缘。



作为广告


如果您需要Windows服务器工作,那么你肯定是欢迎我们 -在有2 GB的RAM或更高速率的Windows Server 2012,2016或2019的自动安装,许可已经包含在房价内。每天只需21卢布我们还有永恒的服务器;)


All Articles