之前一直是用 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 站前辈不吝赐教
1
Eiden 18 天前
能用 scoop 解决问题的, 那也确实没必要 wsl2
|
2
StrangerA 18 天前 11
scoop 解决的是 windows 默认不带包管理器的问题。
wsl 解决的是 windows 跑 linux 环境的问题。 这俩放一块属于是头痛医脚了。 举例,我想用 docker 跑个青龙面板,还是得开 wsl (兴许只用 virtual pc 开个虚拟机也可以?)。 |
3
NessajCN 18 天前
建议一步到位改用 Linux 发行版
因为你的使用场景,编程开发、博客、数据分析,全都是 Linux 比 Windows 好用的场景, 而 Windows 好用的地方,譬如桌面办公软件,游戏,工业设计软件,你都没有提到 |
4
indevn 18 天前
能用 scoop 解决的问题,说明本身也没有任何用 wsl2 的必要…
wsl2 本身也可能会带来一堆问题,我都是迫不得已才用的 |
7
Nasei 18 天前
我个人其实觉得除非打游戏真的变卡了,不然不用太关心跑分降低,而且你这配置,内存硬盘翻倍,i3 换 i5 可能会舒服很多
|
8
0o0O0o0O0o 18 天前
其实我觉得 winget 更适合搭建开发环境,scoop 更适合普通用户安装应用,因为:
https://learn.microsoft.com/en-us/windows/package-manager/configuration/create |
9
testcaoy7 18 天前
开了 Hyper-V 宿主机就成为了 dom0
我用下来并不觉得性能损失有多大,有是有,但没 12%那么大 跑分图一乐,代表不了任何实际使用的情况 CPU 还是用 Intel LINPACK 测试 GFlops 靠谱 |
10
RogerL 18 天前
scoop 装 cli 还行,装软件的话,因为它是放到自己目录里的,会出现各种奇葩的问题(比如企业微信),建议 gui 这种还是用 winget 装
|
11
AoEiuV020JP 18 天前 via Android
12%有点意外了,仔细想想我好像也不是很需要 wsl 和 hyperv ,
|
12
cwcc 18 天前
如果用的开发环境没有使用非 linux 不可的(比如依赖 glibc 、posix 接口等),scoop 确实足够了。
|
13
ilaipi 18 天前
@StrangerA #2 用 docker 的话,wsl 只是一个 docker engine backend ,启动 docker desktop 之后,terminal 直接执行 docker 命令也是可以的,不需要去操作 wsl
|
15
UncleCAT4 OP |
16
NessajCN 18 天前 3
@UncleCAT4 根据我的观察,离不开游戏的学生还是先专心玩游戏,等到彻底玩腻了玩不动了电子阳痿了再考虑开发的事情。不然搭完了这么一个开发环境你就有理由骗自己其实还是有在学习的
|
17
testcaoy7 18 天前
@UncleCAT4
dom0 不算是虚拟机,最多算是“半虚拟化”( Para-virtualization ) 此外,WSL2 只是用了“虚拟机平台”这个组件,根本不需要开 Hyper-V Hyper-V 跟“虚拟机平台”是两个不同的 Windows 组件,后者被 Windows 沙盒以及 WSL 依赖,但这两个功能根本不依赖 Hyper-V 所以只用 WSL 的话根本不需要开 Hyper-V WSL 也分 1 代跟 2 代 1 代属于二进制转译技术,连虚拟化都不需要,单装 WSL 就行了,当然这样子 2 代的新功能也不能用了,如果不需要那些功能,其实也没必要上 2 代 |
18
lengyuqu 18 天前
开发环境 mysys2 似乎更好用一些
|
19
BeautifulSoap 18 天前 via Android
开 hyper-v 应该会对性能有影响,但应该不至于达到 12%这么大的区别吧
我觉得还是 bios 设置之类的看看,然后安装个全新系统来测试比较好 |
20
laobobo 18 天前
@BeautifulSoap 有人测试基本上在 10% 左右
|
21
dolorain 18 天前
win 上做开发不用 wsl ? 简直折磨自己
|
22
idealhs 18 天前
这俩玩意能放在一起谈我就觉得很奇怪
其次 HyperV 也没 12%的性能损耗 其次玩游戏电脑真的有必要装开发环境? |
23
zhao8681286 18 天前
win11 哪里抽象了?一个 startallback + win10 的右键菜单 你不说我根本忘记我在用 win11 了。
|
24
ncepuzs 18 天前
使用 Scoop 几年后,作出的选择与你相反
|
25
m1nm13 18 天前
感谢..赶紧过去吧 hyperv 关了,单核跑分高了 5%
|
26
QXDM 18 天前
|
27
UncleCAT4 OP @dolorain 目前状态还算良好
@zhao8681286 我有系统洁癖。。。win10 都是 ltsc 的,能不要的东西都不要 @ncepuzs 每个人有每个人的习惯和偏好 @idealhs 学生党。。。要打游戏,有时候还要做点东西 |
29
BuffDog 18 天前
开发机一台,游戏娱乐一台
现在那种迷你机子也不贵 |
30
hysjw 18 天前
Linux 一样可以玩游戏 看你玩的游戏了
|
31
interim 18 天前 1
"开启虚拟化之后 Windows 宿主机也会变成一个 Hyper-V 的虚拟机",老谣言了,官方文档说明的很清楚,开启后 windwos 不是运行在虚拟机层
|
32
LongMaoz 18 天前 1
|
33
pota 18 天前
op 测试的情况下管理 wsl 的运行了吗?
|
35
OliverDD 18 天前 via iPhone
看你要看你要开发什么了,java 、python 这种有“虚拟机”/解释型语言完全无所谓; go 、rust 这种比较新的把不同系统细节封装比较好的也可以永 scoop ;如果 c/c++那建议还是 wsl2 ,除非目标平台就是原生 win
|
36
zwyyy456 18 天前 via Android
scoop 与 wsl 似乎并不构成竞争关系。
|
37
mxT52CRuqR6o5 18 天前
开启虚拟化之后 Windows 宿主机会不会变成 Hyper-V 的虚拟机我没细研究过,但我记得微软是说过开启虚拟化后会影响一些宿主机的某些的行为的
|
39
n1cogrv 18 天前
鄙人不才,还恰好全都在用。Scoop ,WSL2 (Debian),Manjaro 。其实哪有这么复杂,也就三个场景。
Windows 用来写与操作系统非强相关,并且较为轻量化的项目,像撸个 py 脚本这些,或者影音娱乐。scoop 管理三几个 jdk 装点开源软件问题不大,那些不遵守开发规范的国内奇葩软件就算了,老老实实用安装器安装。 WSL2 就用来干中等或者重活,我个人感觉 WSL2 很适合前端那一套,nvm 啥的基本就纯 unix/linux 体验,port forward 出来还能有个 win chrome 调试,美学设计啥的随手都有 win 生态的工具。 Manjaro 就纯干重活,一些需要 cuda 的,编译的,或者一定要求 linux 作为宿主的活。 OP 这配置打游戏足够了,想干活体验更好就内存另加个 kit 。TLDR ,再加个 NVMe 固态装 linux 解君愁。 |
40
xianyukang 17 天前
支持,你应该相信自己的测试和判断。
我个人还是选择用 WSL ,因为 WSL 的 Linux 环境特别方便,另外就算有 10% 的 CPU 差距也影响不了多少帧数。 |
42
elevioux 17 天前
scoop 和 wsl 是完全不同的两个东西啊,怎么会有代替的说法呢?
|
43
zyxbcde 17 天前 via iPhone
我直接搞黑苹果装双系统
|
44
TGSAN 16 天前 via Android
1. 降低性能的是 VBS 而不是虚拟机平台
2. 中国和韩国的系统默认不开 VBS ,但是开了任何虚拟化相关的组件就会开 VBS https://learn.microsoft.com/zh-cn/windows-hardware/design/device-experiences/oem-hvci-enablement 3. 通过 secconfig 可以在不影响 hcs 、hyper-v 、wsl2 的情况下关闭 vbs (可以还原性能损失) 4. 跑分图一乐,开关 vbs 实际上影响不大。真的影响大的 oem 厂商让微软开了小灶,就算开了虚拟化组件也不会开 vbs |