抛弃 WSL2 使用 scoop 搭建开发环境

26 天前
 UncleCAT4

之前一直是用 WSL2 来作为开发环境的,博客、数据分析和编程等都在 WSL2 里进行,虽然 WSL2 已经很方便,但是我仍然心里有疙瘩,因为两个原因:Hyper-V 的性能损失和无法自动释放内存/硬盘。

实际上后面两个问题在 2.0.0 的 WSL 中(似乎)已经解决了,在去年的更新中,详情可见 微软开发者 blog,我仔细看了一下,似乎大部分的实质性更新都只在 Windows11 中适用,但是根据描述,部分实验性更新在 Windows10 中是可以用的,毕竟 Windows11 还是太抽象(个人感觉),我最关注的两个功能即内存回收与虚拟硬盘空间释放,似乎在 Windows10 中可用,但我测试了一下,使用 Windows10 LTSC 2021 最新可更新的 WSL ,两项功能在 .wslconfig 中可以正常启用,但没有效果。另一大问题就是性能损失问题了,据我个人测试,开启虚拟化之后 Windows 宿主机造成了大约 12%的性能损失。

下图是开虚拟化平台之前的跑分:

下图是开虚拟化平台之后的跑分:

为了保证跑分结果准确,我特意在两种情况下多跑了几次,分值都差不多。主要的损失来自于 CPU ,而 CPU12%的性能损失还是挺严重的。

这实际上不是 WSL 的锅,而是因为 Hyper-V ,开启虚拟化之后 Windows 宿主机也会变成一个 Hyper-V 的虚拟机,而这个变化通常情况下是无感的,但是 ... 我要打游戏 ...

于是只能去掉 WSL2 ,使用 scoop 来进行环境搭建。实际上 scoop 超乎了我的预期,它不仅可以装开发软件,甚至微信 QQ 这种日常生活软件也可以安装,而且第三方开发者提供的各种 buckets 包含了极多的软件!

如果以上我的说法什么的哪里有问题,还望 V 站前辈不吝赐教

4760 次点击
所在节点    程序员
44 条回复
Eiden
26 天前
能用 scoop 解决问题的, 那也确实没必要 wsl2
StrangerA
26 天前
scoop 解决的是 windows 默认不带包管理器的问题。

wsl 解决的是 windows 跑 linux 环境的问题。

这俩放一块属于是头痛医脚了。

举例,我想用 docker 跑个青龙面板,还是得开 wsl (兴许只用 virtual pc 开个虚拟机也可以?)。
NessajCN
26 天前
建议一步到位改用 Linux 发行版
因为你的使用场景,编程开发、博客、数据分析,全都是 Linux 比 Windows 好用的场景,
而 Windows 好用的地方,譬如桌面办公软件,游戏,工业设计软件,你都没有提到
indevn
26 天前
能用 scoop 解决的问题,说明本身也没有任何用 wsl2 的必要…
wsl2 本身也可能会带来一堆问题,我都是迫不得已才用的
Nasei
26 天前
@NessajCN 你看漏了,他是因为要打游戏才关心 cpu 跑分的
NessajCN
26 天前
@Nasei ....确实,你说的对。那我没办法建议了,毕竟游戏佬对 Windows 的依赖是坚不可摧的
Nasei
26 天前
我个人其实觉得除非打游戏真的变卡了,不然不用太关心跑分降低,而且你这配置,内存硬盘翻倍,i3 换 i5 可能会舒服很多
0o0O0o0O0o
26 天前
其实我觉得 winget 更适合搭建开发环境,scoop 更适合普通用户安装应用,因为:

https://learn.microsoft.com/en-us/windows/package-manager/configuration/create
testcaoy7
26 天前
开了 Hyper-V 宿主机就成为了 dom0
我用下来并不觉得性能损失有多大,有是有,但没 12%那么大
跑分图一乐,代表不了任何实际使用的情况
CPU 还是用 Intel LINPACK 测试 GFlops 靠谱
RogerL
26 天前
scoop 装 cli 还行,装软件的话,因为它是放到自己目录里的,会出现各种奇葩的问题(比如企业微信),建议 gui 这种还是用 winget 装
AoEiuV020JP
26 天前
12%有点意外了,仔细想想我好像也不是很需要 wsl 和 hyperv ,
cwcc
26 天前
如果用的开发环境没有使用非 linux 不可的(比如依赖 glibc 、posix 接口等),scoop 确实足够了。
ilaipi
26 天前
@StrangerA #2 用 docker 的话,wsl 只是一个 docker engine backend ,启动 docker desktop 之后,terminal 直接执行 docker 命令也是可以的,不需要去操作 wsl
StrangerA
26 天前
@ilaipi 我反复确认了几遍这个贴里讨论的不是关 hyper v 的问题吗?您意思是关掉了用 wsl 1 ?
UncleCAT4
26 天前
@Eiden scoop 目前足以使用了
@indevn


@Nasei 学生党,当初差钱才这么配的,后面有钱提一下🤣游戏确实有点掉帧了,之前一直 WSL2 ,后面关了发现就可以了
@0o0O0o0O0o 我回头看看
@NessajCN 之前用过一段时间 arch 和 Debian ,但是实在离不开游戏🤣
@cwcc 目前不依赖,后面要是读研的话应该需要,但是到时候估计没工夫打游戏了
@RogerL 我用的那些软件目前没什么问题,后面看看 winget
@testcaoy7 回头我试一下
NessajCN
26 天前
@UncleCAT4 根据我的观察,离不开游戏的学生还是先专心玩游戏,等到彻底玩腻了玩不动了电子阳痿了再考虑开发的事情。不然搭完了这么一个开发环境你就有理由骗自己其实还是有在学习的
testcaoy7
26 天前
@UncleCAT4
dom0 不算是虚拟机,最多算是“半虚拟化”( Para-virtualization )

此外,WSL2 只是用了“虚拟机平台”这个组件,根本不需要开 Hyper-V
Hyper-V 跟“虚拟机平台”是两个不同的 Windows 组件,后者被 Windows 沙盒以及 WSL 依赖,但这两个功能根本不依赖 Hyper-V

所以只用 WSL 的话根本不需要开 Hyper-V

WSL 也分 1 代跟 2 代
1 代属于二进制转译技术,连虚拟化都不需要,单装 WSL 就行了,当然这样子 2 代的新功能也不能用了,如果不需要那些功能,其实也没必要上 2 代
lengyuqu
26 天前
开发环境 mysys2 似乎更好用一些
BeautifulSoap
26 天前
开 hyper-v 应该会对性能有影响,但应该不至于达到 12%这么大的区别吧

我觉得还是 bios 设置之类的看看,然后安装个全新系统来测试比较好
laobobo
26 天前
@BeautifulSoap 有人测试基本上在 10% 左右

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036347

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX