WSL 2的初步印象

2020-05-06 20:36:28

很快,Windows 2020年5月更新(20H1)将在全球发布。这个更新将包含一些很好的UI改进,但对我来说最相关的是它允许Windows上的Web开发人员升级到WSL2。这是#davegoeswindows传奇中的一个重要里程碑,它的未来意味着什么值得一提。

我在我的13英寸Surface笔记本电脑2上运行WSL 2已经将近一年了,最初的结果令人瞠目结舌:

在我的笔记本电脑上运行了#WSL2。正在用`Bundle exec Jekyll build`编译我的博客.。WSL1:7.853秒WSL2:0.567秒😱。

-戴夫·鲁珀特(@davatron5000)2019年6月18日。

那就快了13倍!并不是每天你都能免费获得13倍的工作效率提升。当我第一次亲眼看到结果时,我不寒而栗,还有点泪眼模糊。我为什么要哭呢?嗯,我主要是在哀悼我在过去5年里积累的所有失去的时间。

它也不仅仅是博客汇编。这改进了NPM安装、Web打包、文件监视、热模块重新加载、服务器启动;作为Web开发人员,几乎每天要做的事情都要快得多。这就像再次拥有一台Mac(或者可能更好,因为苹果在过去几年里一直在对CPU进行散热调节,以延长电池寿命)。

怎么可能是13倍三角洲呢?我之前在考虑切换回Mac时写过一些关于它的文章,但是tl;dr是,由于WSL 1架构,磁盘写入和Linux统计调用都是昂贵的操作。猜猜现代网络开发严重依赖于什么?是的。当您在每个保存的文件上编译整个Getdanged Planet时,您在数万个文件上执行了大量的磁盘写入和Stat调用。

一旦你了解了这个瓶颈,就很难看不见了。当你听到某件事很慢时,压抑的心理就会占据上风,然后最终亲身体验。你的世界有点塌陷了,你喜欢的工具似乎不再实用了。

谢天谢地,WSL团队下了大赌注,彻底检修了整个WSL系统。在WSL2中,通过将整个第一方Linux VM嵌入到Windows中,并将文件操作转移到VHD(虚拟硬件磁盘)网络驱动器,这些痛点得到了解决。权衡的是,你需要支付第一次启动成功的费用来启动VM,这大约是毫秒级的,我几乎察觉不到,例如,没有什么比启动坞站更快的了。

要获得WSL2的全部好处,您还需要将项目文件从/mnt/c/users/<;username>;/移到新VHD上的新~/Linux主目录中。您可以通过转到\\wsl$\<;发行版名称>;\<;用户名>;\home或键入命令Explorer.exe在网络上查看此驱动器的内容。从您的bash提示符。

这是您的Linux文件系统,它的行为和您预期的一样。我创建了一个名为~/Projects的文件夹,其中包含我所有的项目报告,然后我使用代码在VS代码中打开这些项目。指挥。

安装VS代码的远程开发扩展是获得流畅的开发人员体验的最后一步。远程扩展充当WSL的桥梁,迫使VS Code直接在您的Linux发行版中执行所有操作(git、命令行、扩展安装等)。这让一切都变得非常自给自足。

一开始我对这个扩展有点不爽,因为它一直缠着我重新安装我已经安装的东西。但现在我很欣赏它,因为它为我正在运行的环境和文件存在的位置增加了一层可视化。它消除了Windows Web开发过程中的一些谜团,并且在代码中使用版本控制UI要流畅得多。

在我结实的游戏机上安装下一个Windows Update,并获得一个合适的、运行正常的、快速的Linux环境,这种兴奋是显而易见的。可能有一些我还不知道的潜在问题,但根据Insider Preview的开发,我知道WSL团队已经解决了大部分最初的问题。

而且Windows终端现在也不错了!它解决了我之前对缺少选项卡、JSON可配置性以及在Windows上“感觉很酷”这一短暂问题的所有抱怨。说起来仍然很奇怪,但Windows终端无疑是Windows上最好的终端。

我在Windows上做了5年的开发,经历了很多。从不能安装Rails,在人造Cygwin shell中苦苦挣扎,再到在Build 2016上坐在前排宣布WSL的第一个版本;那时,Windows上的Web开发将会可行,这是一线希望。毫无疑问,WSL2是我从那时起看到的最大的改进,感觉就像是Windows上Web开发的新纪元。